=== HeaderGenie Security Headers ===
Contributors: headergenie
Tags: security, headers, hsts, https, scanner
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 8.0
Stable tag: 1.2.28
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Add HTTP security headers from WordPress. Scan what your site sends and enable safe defaults.

== Description ==

HeaderGenie Security Headers sends HTTP security headers from PHP, so they work on Apache, Nginx, and hosts that ignore `.htaccess`.

You can:

* Scan the public site and see which security headers are present, weak, or missing
* Enable safe defaults such as `X-Content-Type-Options`, `X-Frame-Options`, `Referrer-Policy`, DNS prefetch control, and HSTS on HTTPS
* Manage those headers from **HeaderGenie** in wp-admin

The scanner and headers work with no account and do not contact HeaderGenie servers.

A separate HeaderGenie Pro plugin, sold at [headergenie.com](https://headergenie.com), adds Content-Security-Policy, extra headers, and cloud monitoring. That plugin is not included here and is not required.

This plugin does not guarantee legal or compliance outcomes. It helps you set and review security headers.

== Installation ==

1. Upload the `headergenie-security-headers` folder to `/wp-content/plugins/` or install from **Plugins → Add Plugin**.
2. Activate **HeaderGenie Security Headers**.
3. Open **HeaderGenie** in the admin menu.
4. Run a scan, then enable the headers you want.

== Frequently Asked Questions ==

= Does this plugin need an account? =

No. Scanning and the included security headers work locally.

= Does the plugin change .htaccess? =

No. Headers are sent from PHP on front-end and login responses.

= Will this break my site? =

The included headers are conservative. They are not applied to wp-admin, AJAX, REST, or XML-RPC.

= Does this plugin phone home? =

No. It only requests your own public site URL when you run a scan. Local development can set `HEADER_GENIE_SCAN_URL` in `wp-config.php` if the public URL is not reachable from PHP. It does not contact HeaderGenie servers.

= What is HeaderGenie Pro? =

A separate plugin from headergenie.com. It is optional and is not part of this download.

== Privacy ==

This plugin does not contact HeaderGenie servers and does not require an account. A scan requests your own public site URL from the WordPress server so it can read response headers. No analytics, license checks, or third-party tracking run in this plugin.

== Changelog ==

= 1.2.28 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Directory banner and icon.
* Shared release number with Pro.

= 1.2.27 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.26 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.25 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.24 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.23 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.22 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.21 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.20 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.19 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.18 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.17 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.16 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.15 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.14 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.13 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.12 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.11 =
* WordPress.org display name and slug: HeaderGenie Security Headers.
* Shared release number with Pro.

= 1.2.10 =
* Shared release number with Pro.
* Harden header value allowlists, scanner loopback, and admin HTML escaping.

= 1.2.9 =
* Shared release number with Pro.
* Harden header value allowlists, scanner loopback, and admin HTML escaping.

= 1.2.8 =
* Shared release number with Pro.
* Harden header value allowlists, scanner loopback, and admin HTML escaping.

= 1.2.7 =
* Shared release number with Pro.
* Harden header value allowlists, scanner loopback, and admin HTML escaping.

= 1.2.5 =
* Shared release number with Pro.
* Harden header value allowlists, scanner loopback, and admin HTML escaping.

= 1.2.3 =
* Shared release number with Pro.
* Harden header value allowlists, scanner loopback, and admin HTML escaping.

= 1.2.1 =
* Shared release number with Pro.
* Harden header value allowlists, scanner loopback, and admin HTML escaping.

= 1.2.0 =
* First WordPress.org release: scanner and safe default headers only.

== Upgrade Notice ==

= 1.2.28 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.27 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.26 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.25 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.24 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.23 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.22 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.21 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.20 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.19 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.18 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.17 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.16 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.15 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.14 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.13 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.12 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.11 =
Renamed to HeaderGenie Security Headers for the WordPress.org listing.

= 1.2.10 =
Shared release with Pro, plus scanner and header hardening.

= 1.2.9 =
Shared release with Pro, plus scanner and header hardening.

= 1.2.8 =
Shared release with Pro, plus scanner and header hardening.

= 1.2.7 =
Shared release with Pro, plus scanner and header hardening.

= 1.2.5 =
Shared release with Pro, plus scanner and header hardening.

= 1.2.3 =
Shared release with Pro, plus scanner and header hardening.

= 1.2.1 =
Shared release with Pro, plus scanner and header hardening.

= 1.2.0 =
WordPress.org release with scanner and core security headers.
