Closed3

CSP ヘッダに 'unsafe-inline' を入れる理由

snakasnaka

理由は

古いブラウザでスクリプトを動作させるための fallback

  • サイトでインラインスクリプトを利用している。
  • インラインスクリプトを CSP のもとセキュアに利用する方法としては nonce がある。
  • nonce-... の指定があれば、モダンブラウザでは unsafe-inline は無視される。
    • つまりモダンブラウザではセキュリティが維持された状態でインラインスクリプトが実行できる
  • nonce-.. に対応していないような古いブラウザでは unsafe-inline が有効に働く。
    • 古いブラウザもスクリプトが実行できるようになる。
    • ただし、その場合古いブラウザではセキュリティを犠牲しながらインラインスクリプトを実行することになる

https://web.dev/articles/strict-csp

snakasnaka

つまり

モダンブラウザ上ではセキュリティを維持しつつ、古いブラウザ[1]ではセキュリティを犠牲するがスクリプトの実行はできる状態を目指した結果がこれ。

脚注
  1. そもそも、古いブラウザである時点でセキュリティ問題あるし、それをサポートするためだけにサイトの構成を大きく変えたくない。 ↩︎

このスクラップは4ヶ月前にクローズされました