| No HTTPS / plaintext HTTP | Critical |
| Missing Content-Security-Policy | High |
| CSP script-src contains a wildcard | High |
| CSP is report-only, not enforced | Medium |
| Weak CSP — unsafe-inline or unsafe-eval in script-src | Medium |
| CSP allows inline styles | Low |
| CSP missing object-src 'none' | Low |
| CSP missing base-uri directive | Low |
| Missing HSTS | Medium |
| HSTS max-age too short under 6 months | Low |
| Missing clickjacking protection (X-Frame-Options) | Medium |
| Mixed content on an HTTPS page | Medium |
| Permissive CORS — wildcard origin | Medium |
| Missing X-Content-Type-Options: nosniff | Low |
| Missing Referrer-Policy | Low |
| Missing Permissions-Policy | Low |
| Missing Cross-Origin-Opener-Policy (COOP) | Info |
| Missing Cross-Origin-Embedder-Policy (COEP) | Info |
| Missing Cross-Origin-Resource-Policy (CORP) | Info |
| Missing Cache-Control headers | Info |
| Server version disclosure | Info |
| X-Powered-By discloses the stack | Info |
| Session cookie missing Secure | High |
| Session cookie missing HttpOnly | Medium |
| Session cookie missing SameSite | Medium |
| Non-session cookie missing Secure | Low |
| Non-session cookie readable by JavaScript | Info |
| Non-session cookie missing SameSite | Info |
| Insecure deserialization — serialized object in a cookie lives in deserializationProbe.ts, not this file; Java/PHP/Ruby/pickle magic in a Set-Cookie value (CWE-502); JWTs excluded | High |