On this page4 sections
ReferenceBeginner3-5 min reference

Security Headers

A handful of HTTP response headers harden a web app against common attacks. You can check every one of these in the browser DevTools Network → Headers tab or a curl -I — no special tooling, no exploitation. This is a lookup of what each header does and what "good" looks like. For the broader picture, see OWASP Top 10 below.

Header reference

HeaderProtects againstGood value looks like
Strict-Transport-Security (HSTS)Protocol-downgrade / SSL stripmax-age=31536000; includeSubDomains
Content-Security-Policy (CSP)XSS, injectionA policy without unsafe-inline/* on script-src
X-Content-Type-OptionsMIME sniffingnosniff
X-Frame-Options / CSP frame-ancestorsClickjackingDENY or SAMEORIGIN
Referrer-PolicyReferrer leakagestrict-origin-when-cross-origin or stricter
Permissions-PolicyUnwanted API access (camera, geo)Only the features the app needs
Set-Cookie flagsSession theftSecure; HttpOnly; SameSite=Lax/Strict

What QA can safely check

  • The header is present on the right responses (HSTS on HTTPS; CSP on HTML documents).
  • Session cookies carry Secure, HttpOnly, and a SameSite value.
  • CSP isn't effectively disabled by unsafe-inline, unsafe-eval, or a wildcard source.
  • X-Powered-By / verbose Server headers aren't leaking stack versions.

When to use

A fast pre-release check, or while reviewing a page in DevTools. Use the request-header-inspector utility for a quick read. Probing CSP bypasses or framing attacks is security-team work, not this checklist.

Common mistakes

  • Checking the homepage only — headers must be on API and authenticated responses too.
  • Seeing a CSP header and assuming it's strong; read the directives.
  • Confusing request and response headers.
  • Treating missing headers as a "bug" without knowing the threat model — log it, link OWASP, let the team rank it.

// Related resources

Related cheat sheets