Content Security Policy Updates
Recent CSP (Content Security Policy) updates to support new features while maintaining security.Recent Changes
Google Fonts Support (Commit e012ed2)
Added:fonts.googleapis.comtostyle-srcfonts.gstatic.comtofont-src
Cloudflare Insights (Commit 1b2e230)
Added:static.cloudflareinsights.comtoscript-src
WASM Loading (Commit 8626299)
Added:data:toscript-src
report-uridirective (broken endpoint)
Vite Node Polyfills (Commit e012ed2)
Added:- Module resolution aliases for
vite-plugin-node-polyfills/shims/*
Current CSP Configuration
Client (packages/client/vite.config.ts)
Why unsafe-inline and unsafe-eval?
unsafe-inline for scripts:
- Required for Vite HMR (Hot Module Replacement) in development
- Required for inline event handlers in React
- Required for Cloudflare Insights
unsafe-inline for styles:
- Required for styled-components
- Required for inline styles in React components
- Required for Google Fonts
unsafe-eval for scripts:
- Required for Vite development mode
- Required for dynamic imports
- Required for WASM instantiation
unsafe-inline:
Security Considerations
Allowed Origins
Fonts:fonts.googleapis.com- Google Fonts CSSfonts.gstatic.com- Google Fonts WOFF2 files
static.cloudflareinsights.com- Cloudflare Web Analytics
https:- Allow all HTTPS images (for user avatars, external assets)data:- Data URLs for inline imagesblob:- Blob URLs for generated images
wss:- Secure WebSocket connectionshttps:- HTTPS connections
Blocked by Default
http:origins (except localhost in development)ws:origins (except localhost in development)ftp:originsfile:origins- Inline event handlers (except with
unsafe-inline)
Testing CSP
Development
CSP violations are logged to console:Production
CSP violations can be reported to an endpoint:report-uri was removed in commit 8626299 due to broken endpoint. Re-enable when endpoint is fixed.
Related Files
packages/client/vite.config.ts- CSP configurationpackages/client/public/_headers- Cloudflare Pages headerspackages/client/src/lib/error-reporting.ts- CSP violation handling