Single Page Protection allows you to protect specific internal website pages with individual passwords, eliminating the need to create user accounts for each visitor. You can configure protected paths and their passwords through the administration interface, and customize instructions while allowing trusted roles to bypass the password prompt.
Single Page Protection adds a separate password to selected internal Drupal paths. It is intended for lightweight page-level protection without creating an account for every visitor.
Features
- Manage protected paths and individual passwords from the administration screen.
- Store password hashes using Drupal's password API.
- Customize the instructions above the password form.
- Limit failed attempts by path and client address.
- Revoke existing page unlocks when the password changes.
- Allow explicitly trusted roles to bypass page protection.
- Check protection before Drupal's internal page cache serves a response and send
Cache-Control: private, no-storefor protected pages and password forms.
Installation and configuration
Install with composer require 'drupal/spp:^1.0', then enable single_page_protection.
Open Configuration > System > Single Page Protection and add an internal path such as /members-only with its password. Existing paths and passwords can be edited without removing the entry.
Grant administer single page protection only to trusted administrators. Grant bypass single page protection only to roles that should not be asked for a page password.
Protection boundaries
Protection applies to the exact configured URL path. It does not replace entity access control or automatically protect aliases, alternate routes, feeds, APIs, or downloadable files exposing the same content. Use Drupal's access permissions when content must be restricted everywhere.
When adding protection to a page previously served through a reverse proxy or CDN, purge its existing cache. External caches must respect the response's private, no-store headers.
Requirements
Requires Drupal ^10.6 || ^11.3. Use a security-supported core release. The current release has been tested on Drupal 10.6, 11.3, and 11.4.
Ask your assistant about Single Page Protection
Check compatibility with your Drupal and PHP version, maintenance and security coverage, from current release data. How it works
Depends on
Dependencies of the latest stable release
No dependencies recorded for this project.
Required by
Tracked projects that depend on this one
No tracked projects depend on this one yet.
Activity
Release Timeline
Releases
| Version | Type | Core | PHP | Release date | |
|---|---|---|---|---|---|
| 1.0.12 | Stable | Sep 24, 2026 | |||
| 1.0.11 | Stable | 10–11 | Aug 16, 2026 | ||
| 1.0.10 | Stable | 10–11 | Jul 14, 2026 | ||
| 1.0.9 | Stable | 9–11 | Jun 18, 2026 | ||
| 1.0.7 | Stable | 9–11 | Jun 18, 2026 | ||
| 1.0.6 | Stable | Feb 24, 2024 | |||
| 1.0.5 | Stable | Feb 24, 2024 | |||
| 1.0.4 | Stable | Feb 24, 2024 | |||
| 1.0.3 | Stable | Feb 23, 2024 | |||
| 1.0.2 | Stable | Feb 23, 2024 |