Engineering Gap
Helmet CSP is configured in production (security.module.ts line 82-93) but no report-uri or report-to directive is set. CSP violations go unreported. Operators have no visibility into potential XSS attacks.
Codebase Evidence
app/backend/src/common/security/security.module.ts lines 80-93: CSP directives defined without report-uri
Risk Profile
CSP violations invisible. XSS attempts undetected.
Remediation Strategy
Add report-uri /api/v1/csp-report endpoint. Create CSP violation collector that logs to structured logger. Monitor for violation spikes.
Success Conditions
Change Surface
Files: security.module.ts, new CSP report controller
Security Review
Improves attack visibility without increasing attack surface.
Completion Checklist
Engineering Gap
Helmet CSP is configured in production (
security.module.tsline 82-93) but noreport-uriorreport-todirective is set. CSP violations go unreported. Operators have no visibility into potential XSS attacks.Codebase Evidence
app/backend/src/common/security/security.module.tslines 80-93: CSP directives defined without report-uriRisk Profile
CSP violations invisible. XSS attempts undetected.
Remediation Strategy
Add
report-uri /api/v1/csp-reportendpoint. Create CSP violation collector that logs to structured logger. Monitor for violation spikes.Success Conditions
Change Surface
Files:
security.module.ts, new CSP report controllerSecurity Review
Improves attack visibility without increasing attack surface.
Completion Checklist