#security#csp#nextjs
strict-dynamic делает allowlist в CSP ненужным
Годами я собирал в script-src длинные списки доменов. Оказалось, при nonce + strict-dynamic это лишнее: браузер доверяет скрипту с валидным nonce, а любые скрипты, которые он подгрузит дальше, наследуют доверие автоматически. Хост-allowlist в этом режиме просто игнорируется современными браузерами.
Content-Security-Policy:
script-src 'nonce-r4nd0m' 'strict-dynamic';
object-src 'none';
base-uri 'self';
Итог: политика короче, а безопасность строже — inline-инъекция без nonce не исполнится, и не нужно вести список CDN. В Next.js nonce удобно раздавать через middleware в заголовке запроса.