What this does
Analyzes raw HTTP response headers — pasted from your browser's Network tab or curl -I output — for five of the highest-impact browser security headers: Content-Security-Policy, Strict-Transport-Security, X-Frame-Options, Referrer-Policy, and Permissions-Policy. Each is scored individually based on both presence and the actual quality of its configuration — a header that's present but configured permissively (an unsafe-inline CSP, a one-hour HSTS max-age) scores lower than a genuinely strict one, not just a flat present/absent check.
How the score is calculated
Each of the five headers is worth an equal share of the total score. A header that's missing entirely scores 0 for that share (except Referrer-Policy, since modern browsers already apply a reasonably safe default policy on their own even with no header set at all). A header that's present gets full credit only when it's configured strictly — the specific criteria for each header are listed under "Explanation" once you run an analysis, along with why that configuration matters.
A genuinely important interaction: CSP and X-Frame-Options
A Content-Security-Policy with a frame-ancestors directive does the same job as X-Frame-Options — controlling who can iframe this page — and modern browsers prefer it. This tool checks for that specifically: a missing X-Frame-Options header isn't penalized if frame-ancestors is already present in the CSP, since adding a redundant header on top wouldn't improve security.
FAQ
Where do I actually get these headers to paste in?
Open your browser's DevTools, go to the Network tab, reload the page, click the main document request, and copy the response headers shown there — or run "curl -I https://example.com" from a terminal, which prints them directly.
Why does this only analyze five headers when there are more security headers than that?
These five — CSP, HSTS, X-Frame-Options, Referrer-Policy, and Permissions-Policy — cover the highest-impact, most commonly misconfigured browser security controls. Others exist (X-Content-Type-Options, Cross-Origin-Opener-Policy, and more), but these five are where most real-world configuration mistakes concentrate.
Is a 100 score a guarantee this site is secure?
No — these headers reduce specific classes of client-side attack (XSS, clickjacking, protocol downgrade, referrer leakage, misuse of browser APIs). A perfect score here says nothing about server-side vulnerabilities, authentication flaws, or dozens of other security concerns entirely outside what HTTP response headers can control.
Why is X-Frame-Options sometimes marked good even when it's missing?
If a Content-Security-Policy is present with a frame-ancestors directive, that directive fully replaces X-Frame-Options's job and is what modern browsers actually prefer — so a missing X-Frame-Options isn't penalized when frame-ancestors is already doing the same work.
Does this tool fetch headers from a live URL?
No — it only analyzes headers you paste in, entirely in your browser. It never makes a network request on your behalf.
Try it yourself
For what each header actually does and how they fit together, see HTTP Security Headers Explained.