← All releases

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.