HTTPS
Security headers checker
Send one GET to a public URL and read the browser policies that came back: HSTS, CSP, framing, sniffing, referrers, permissions, and cross-origin isolation.
HTTPS
Send one GET to a public URL and read the browser policies that came back: HSTS, CSP, framing, sniffing, referrers, permissions, and cross-origin isolation.
A security header is an instruction a site sends with its response. The browser reads it before running the page. HSTS tells the browser to stay on HTTPS. Content-Security-Policy lists which scripts, frames, and objects are allowed. X-Frame-Options and frame-ancestors decide who may embed the page. X-Content-Type-Options: nosniff stops the browser from guessing a content type. Referrer-Policy limits the URL that leaks when someone clicks away. Permissions-Policy turns off camera, microphone, and location unless the page asks for them. COOP, COEP, and CORP control how this window and its files interact with other sites.
This check makes one GET to the URL you enter, on port 80 or 443, and follows at most five redirects. It reads those headers and then drops the body. It does not log in, submit a form, or try other ports. Before each request, including each redirect, the hostname is resolved and the check stops if any answer is a private, loopback, or reserved address.
Grade A means the response has HSTS for at least a year with includeSubDomains, nosniff, framing locked down, a strict referrer policy, and an enforcing Content-Security-Policy that does not use unsafe-inline, unsafe-eval, or a star on the main directives. Grade B means the year-long HSTS, nosniff, and framing are in place, and something else is still loose, such as a missing CSP or a Server header's sibling X-Powered-By. Grade C means at least one of those three core controls exists and the set is incomplete. Grade D means only a side policy is set. Grade F means none of HSTS, nosniff, framing, or CSP showed up.
HSTS is only honored on HTTPS. A copy of the header on an HTTP response is ignored, which is why the result says so when the final URL is http. Preload eligibility, as far as this one response can show it, needs max-age of at least 31536000 seconds, includeSubDomains, and the preload token. The public preload list also wants the registrable domain, an HTTP-to-HTTPS redirect, and no leftover HTTP. This page can see the header. It cannot see the rest of that list's rules.
CSP is the header that actually stops an unexpected script. Report-Only is useful while you watch violations, and it blocks nothing. unsafe-inline and unsafe-eval put back much of the risk CSP exists to remove. A star in default-src or script-src means any host can supply that kind of content. Framing is covered either by X-Frame-Options DENY or SAMEORIGIN, or by CSP frame-ancestors without a star. ALLOW-FROM is obsolete. nosniff is a one-word header and it belongs on HTML, JSON, and downloads alike.
Referrer-Policy decides how much of the address travels with the next request. strict-origin-when-cross-origin, no-referrer, same-origin, and strict-origin keep the path at home. unsafe-url sends the path and query everywhere. Permissions-Policy is optional for a simple page and worth setting when you do not use the camera or location. COOP same-origin plus COEP require-corp turns on cross-origin isolation, which most marketing sites never need. CORP matters when other sites embed your files.
A missing header is a gap. A header with a star or unsafe-inline is a weaker instruction than it looks.
It sends a GET and reads the response headers, then cancels the body. Scripts on the page do not run here. The grade is about the headers, not about what the HTML would do in a browser.
Each hop must stay on http or https and on port 80 or 443, and the name must resolve only to public addresses. A redirect to a private IP, localhost, or another port stops the check.
No. B means the transport and framing basics are set and at least one policy is still loose. Read the section next to the warning before changing production headers.
No. They matter for cross-origin isolation and for files other sites embed. A normal page can omit them. The result lists them so you can see what was sent.
No. The URL is used for this request and is not written to a database or to the application log.