From 432a30ae3db9df1f52675dc705bd400395dfc0f6 Mon Sep 17 00:00:00 2001 From: pgjones Date: Fri, 29 May 2020 16:07:08 +0100 Subject: [PATCH] Allow scripts to contain a style CSP-nonce This follows on from e377515867e4011dbc92556e9361ebce6e24deba which introduced a script nonce. The same nonce is now used for the inline styles, allowing a stronger CSP (nonce over unsafe-inline). This also includes a test for the existing script nonce. --- .../src/server/middleware/get_page_handler.ts | 8 +- site/content/docs/12-security.md | 6 +- test/apps/csp-nonce/rollup.config.js | 58 +++++++++++++ test/apps/csp-nonce/src/client.js | 9 ++ test/apps/csp-nonce/src/routes/_error.svelte | 3 + test/apps/csp-nonce/src/routes/index.svelte | 7 ++ test/apps/csp-nonce/src/server.js | 13 +++ test/apps/csp-nonce/src/service-worker.js | 82 +++++++++++++++++++ test/apps/csp-nonce/src/template.html | 14 ++++ test/apps/csp-nonce/test.ts | 35 ++++++++ 10 files changed, 228 insertions(+), 7 deletions(-) create mode 100644 test/apps/csp-nonce/rollup.config.js create mode 100644 test/apps/csp-nonce/src/client.js create mode 100644 test/apps/csp-nonce/src/routes/_error.svelte create mode 100644 test/apps/csp-nonce/src/routes/index.svelte create mode 100644 test/apps/csp-nonce/src/server.js create mode 100644 test/apps/csp-nonce/src/service-worker.js create mode 100644 test/apps/csp-nonce/src/template.html create mode 100644 test/apps/csp-nonce/test.ts diff --git a/runtime/src/server/middleware/get_page_handler.ts b/runtime/src/server/middleware/get_page_handler.ts index 53f413640..16a0768ba 100644 --- a/runtime/src/server/middleware/get_page_handler.ts +++ b/runtime/src/server/middleware/get_page_handler.ts @@ -292,6 +292,9 @@ export function get_page_handler( script += ``) diff --git a/site/content/docs/12-security.md b/site/content/docs/12-security.md index 036568162..088d39510 100644 --- a/site/content/docs/12-security.md +++ b/site/content/docs/12-security.md @@ -6,9 +6,9 @@ By default, Sapper does not add security headers to your app, but you may add th ### Content Security Policy (CSP) -Sapper generates inline `