Security Headers

Description

TLS is growing in complexity. Server Name Indication (SNI) now means HTTPS sites
may be on shared IP addresses, or otherwise restricted. For these
servers it is handy to be able to set desired headers without access to
the web servers configuration or using .htaccess file.

This plug-in exposes controls for:

  • HSTS (Strict-Transport-Security)
  • HPKP (Public-Key-Pins)
  • Disabling content sniffing (X-Content-Type-Options)
  • XSS protection (X-XSS-Protection)
  • Clickjacking mitigation (X-Frame-Options in main site)

HSTS is used to ensure that future connections to a website always use TLS,
and disallowing bypass of certificate warnings for the site.

HPKP is used if you don’t want to rely solely on the Certificate Authority trust model for certificate issuance.

Disabling content sniffing is mostly of interest for sites that allow users to upload files of specific types, but that browsers might be silly enough to interpret of some other type, thus allowing unexpected attacks.

XSS protection re-enabled XSS protection for the site, if the user has disabled it previously, and sets the “block” option so that attacks are not silently ignored.

Clickjacking protection is usually only relevant when someone is logged in but users requested it, presumably they have rich content outside of WordPress authentication they wish to protect.

Installation

  1. Upload “security_headers.php” to the “/wp-content/plugins/” directory.
  2. Activate the plugin through the “Plugins” menu in WordPress.

FAQ

Installation Instructions
  1. Upload “security_headers.php” to the “/wp-content/plugins/” directory.
  2. Activate the plugin through the “Plugins” menu in WordPress.

Reviews

Excellent

Works really well! Tested with [link removed]

For the future releases it would be good to include Content-Security-Policy and the forthcoming Expect-CT options.

Read all 5 reviews

Contributors & Developers

“Security Headers” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

0.9

Removed unnecessary whitespace in HSTS header (thanks Thomas)

Added Referrer-Policy header

Corrected plugins name from “HTTP Headers” to “Security Header” (thanks Jamie)

Removed trailing semi-colon from X-XSS-Protection (it worked but not needed)

0.8

Add headers to admin section of WordPress

Added option to set the X-Frame-Options headers to main site

Added HSTS Preload header (thanks to Jamie)

0.7

Add report-uri

Fix handling of non-numeric blank strings for HPKP max-age

0.6

HPKP support

Check for TLS before emitting HSTS or HPKP headers

0.5

Change h2 for h1 for accessibility per #31650

0.4

License change
Clarify wording for XSS protection in readme

0.3

Prepare for release

0.2

Added Sonarqube file and formatting changes

0.1

  • Initial release.