From d49e7ce4f5e1e993af8445af6776b28ad0ec47ff Mon Sep 17 00:00:00 2001 From: Dan Milne Date: Thu, 11 Jun 2026 20:42:28 +1000 Subject: [PATCH] Move CSP to nonces; remove unsafe-inline from script-src and style-src unsafe-inline on script-src neutered CSP as an XSS defense on the login and OAuth consent pages (the highest-value targets in an IdP). Switch to a per-response nonce for both script-src and style-src and drop unsafe-inline entirely. - Add a random per-response nonce generator and apply it to script-src/style-src. - Remove :unsafe_inline from both directives. - Nonce the one hand-written inline script (dark-mode detection in the layout). - Convert the 2 static style="display:none" attributes to class="hidden" (their runtime toggle is done via element.style in JS, which CSP does not govern). importmap-rails (2.2.3) already stamps the nonce onto its generated inline importmap/module/preload tags, and Turbo (2.0.23) reads csp_meta_tag for its injected