DEV Community

Алексей Спинов
Алексей Спинов

Posted on

How to Check Website Security Headers in One API Call

Most websites are missing critical security headers. Here is how to check.

The 10 Security Headers

  1. Strict-Transport-Security (HSTS) — force HTTPS
  2. Content-Security-Policy (CSP) — prevent XSS
  3. X-Content-Type-Options — prevent MIME sniffing
  4. X-Frame-Options — prevent clickjacking
  5. X-XSS-Protection — legacy XSS filter
  6. Referrer-Policy — control referrer info
  7. Permissions-Policy — restrict browser features
  8. Cross-Origin-Opener-Policy — isolate browsing context
  9. Cross-Origin-Resource-Policy — control resource loading
  10. Cross-Origin-Embedder-Policy — require CORS

Quick Check in Node.js

const response = await fetch(url, {method: "HEAD"});
const SECURITY_HEADERS = ["strict-transport-security", "content-security-policy", ...];
const present = SECURITY_HEADERS.filter(h => response.headers.has(h));
const score = Math.round(present.length / SECURITY_HEADERS.length * 100);
Enter fullscreen mode Exit fullscreen mode

Real World Scores

  • Stripe.com: 60% (6/10 headers)
  • Google.com: 70% (7/10)
  • GitHub.com: 80% (8/10)

I built an HTTP Headers Checker on Apify — search knotless_cadence http-headers.

Top comments (0)