wp-content/plugins/sentinel-headers/sentinel-headers.php
Sentinel Headers
Security headers with a report-only mode, so you find out what breaks before your visitors do.
== Description ==
Every security-headers plugin will happily set a Content Security Policy that breaks your checkout. Sentinel Headers starts in report-only mode, collects what would have been blocked for a week, and shows you that list before you enforce anything.
It sets CSP, Referrer-Policy, Permissions-Policy, X-Content-Type-Options and HSTS. It does not set X-XSS-Protection, because that header has been harmful for years and plugins that still set it are copying each other.
Reports are stored locally in a table you can drop. Nothing is sent to a reporting endpoint you do not control.
== Screenshots ==
Numbered the way they ship in /assets/. Click any one to see it full width.
== Installation ==
- Install and activate the plugin. Report-only mode is on by default.
- Leave it for a week under real traffic.
- Read the report under Tools → Headers, then enforce.
Enforcing on day one is how you find out your payment provider loads a script from a domain nobody documented.
== Frequently asked questions ==
Will this break my site?
Not in report-only mode, which is where it starts. Enforcement is a decision you make after reading the report.
Does it work behind a CDN?
Yes, as long as the CDN forwards response headers. Most do; the readme lists the ones that need configuration.
Can I set headers per page?
Yes, through a filter. Doing it in the UI would produce a policy nobody can audit.
== Changelog ==
= 2.2.0 =
- Permissions-Policy support, with the deprecated Feature-Policy header removed.
- Reports are grouped by directive instead of by request.
= 2.0.0 =
- Report-only mode is now the default for new installs.
- Dropped X-XSS-Protection entirely. Setting it is worse than not setting it.
- Minimum PHP is now 8.1.
= 1.7.3 =
- Security: the report viewer escaped directive names but not blocked URIs.