Security header check

Which security headers does your website send, and which are missing? With a rating, explanations and the matching configuration for your web server.

HSTS, CSP, clickjacking, cookiesConfig for nginx, Apache, IISRedirects and http→https
Try it:

Enter an address. https:// is used if you leave it out.

The page is fetched by the hollop.net server (headers only, no content). Internal addresses are not queried and nothing is stored.

Why security headers?

With a few lines of web server configuration you tell the browser how strictly to treat your site: only load it over HTTPS, do not run foreign scripts, do not show it in foreign frames. It costs nothing and rules out whole classes of attacks.

The six most important headers

How is the grade calculated?

Each of the six headers earns a point if it is set and not obviously ineffective. Six points give an A, five a B and so on. A+ requires no open warnings and a CSP that really restricts scripts. Without HTTPS or with an invalid certificate the grade is F. The grade is a guide: a site without login or forms needs less than a customer portal.

Implementation notes

Set the headers where the response is created. If a reverse proxy or CDN sits in front, they often belong there. With nginx, add_header in a location block replaces all headers from the server block, and without always they are missing on error pages. With HSTS and includeSubDomains, every subdomain must support HTTPS.

Check the certificate itself in the SSL check and which CAs may issue in the CAA generator.

FAQ

Why does the tool show different headers than my browser?

Some servers send different responses depending on browser, language or login. The check is an anonymous request without cookies. Headers that are only set after login do not appear here.

Do I really need a Content Security Policy?

For a static site without forms the risk is low. As soon as users log in or enter data, a CSP is the best protection against injected JavaScript. Start with Report-Only and enforce it once no more violations are reported.

Isn’t X-XSS-Protection important?

No, not any more. All current browsers have removed the XSS filter, and in old versions it could even open vulnerabilities. Remove it or set it to 0.

Does the check put load on my site?

No. A single request is made (plus one per redirect and one for http://), and the content is cut off after the headers.

Can I check internal sites?

No, the hollop.net server only queries public addresses. For internal sites use the curl -sI command from the result in your own network.