fix(security): lock CSP script-src to self (no unsafe-inline/unsafe-eval)
Oracle round-9 hard blocker: live CSP advertised script-src 'self' 'unsafe-inline' 'unsafe-eval'. Verified the Vite build emits zero inline <script> tags (only external module script) and no bundled dep uses new Function / eval (reactflow / leaflet / zustand / dagre / cmdk / framer-motion all clean). - nginx.conf script-src reduced to 'self'. - img-src extended for OSM tiles (https://*.tile.openstreetmap.org) and leaflet marker images served from unpkg. Also (Oracle round-9 second blocker) chat_sidebar QA now creates a thread + sends a message before asserting, then strict-asserts threadRowCount >= 1 AND previewRows === threadRowCount AND timeBadges === threadRowCount. No more vacuous PASS when sidebar is empty.
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
map $sent_http_content_type $csp_header {
|
||||
default "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com; img-src 'self' data: blob:; connect-src 'self' https://demo.flow-master.ai https://canvas.flow-master.ai wss://canvas.flow-master.ai; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'";
|
||||
default "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com; img-src 'self' data: blob: https://*.tile.openstreetmap.org https://unpkg.com; connect-src 'self' https://demo.flow-master.ai https://canvas.flow-master.ai wss://canvas.flow-master.ai; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'";
|
||||
}
|
||||
|
||||
server {
|
||||
|
||||
Reference in New Issue
Block a user