メインコンテンツへ
セキュリティ

CSP(Content Security Policy)でインラインスクリプトの実行を禁止する設定として正しいものはどれか。

ア.script-src 'self' 'unsafe-inline'
イ.script-src 'none'
ウ.script-src 'self'('unsafe-inline'を含めない)正解
エ.default-src 'unsafe-inline'

解説

CSPの'unsafe-inline'は「危険な許可証」。この許可証を発行しなければ(script-srcに含めない)、インラインスクリプトは実行できなくなる。

なぜ ウ が正解か

script-srcに'unsafe-inline'を含めないことで、HTMLに直接書かれたインラインスクリプト(<script>タグ内のコード、onclickなどのイベントハンドラ)の実行がブロックされる。'self'だけを指定した場合は同一オリジンの外部JSファイルのみ許可される。

なぜ ア は間違いか

script-src 'self' 'unsafe-inline' は、'unsafe-inline'を明示的に含めているため、インラインスクリプトが許可されてしまう。

なぜ イ は間違いか

script-src 'none' はすべてのスクリプトを禁止する(インラインも外部JSも)。インラインのみ禁止ではない。

なぜ エ は間違いか

default-src 'unsafe-inline' はデフォルトですべてのリソースタイプにインラインを許可する最も危険な設定。

出典: AI生成問題(学習用)