Skip to main content

Security: HTTP Headers and CSP Configuration

non-critical   Property: ChurchWiseAI   Category: Security Tier: all Persona: security-engineer Touchpoint: all pages (HTTP headers)

Preconditions

  • Web server configured (Vercel)
  • Security headers middleware in place

Steps

#ActionExpected Result
1Check Content-Security-Policy headerCSP set. Restricts scripts to approved domains. No unsafe-inline (except fonts).
2Check X-Frame-Options headerSet to DENY or SAMEORIGIN. Prevents clickjacking.
3Check X-Content-Type-Options headerSet to nosniff. Prevents MIME-type sniffing.
4Check Strict-Transport-Security headerSet to max-age=31536000. Forces HTTPS. Includes subdomains.
5Check Referrer-Policy headerSet (e.g., strict-origin-when-cross-origin). Controls referrer leaks.
6Check Permissions-Policy headerRestricts feature access (camera, microphone, geolocation). No unrequired features.
7Check for CORS headersAccess-Control-Allow-Origin restricted to known domains (not *).
8Check cookiesSecure flag set. HttpOnly flag set. SameSite=Strict or Lax. No session cookies over HTTP.

Known Failure Modes

  • Missing CSP — XSS vulnerability
  • unsafe-inline scripts — injection vector
  • No X-Frame-Options — clickjacking vulnerability
  • No HSTS — MITM attack vector

References

Notes

Security headers prevent common web attacks (XSS, clickjacking, MIME sniffing). These are low-cost, high-impact security measures. Check with Mozilla Observatory or BuiltWith. Target: A+ grade on Observatory. Run after security audit.