セキュリティ・認証 / Webセキュリティ
CSPとは
Content-Security-Policy。ブラウザに「読み込んでよいスクリプトや画像の場所」を伝えるHTTPヘッダーです。
用語集内のカードを見るセキュリティ・認証 / Webセキュリティ
Content-Security-Policy。ブラウザに「読み込んでよいスクリプトや画像の場所」を伝えるHTTPヘッダーです。
用語集内のカードを見るCSPを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。
実務メモ
CSPはXSS被害軽減、外部スクリプト制御、タグ管理、iframe制御、管理画面や公開Webの防御で効きます。既存画面へ適用すると表示や計測が止まることがあります。
証跡には対象URL、CSPヘッダー全文、Report-Only有無、違反レポート、ブロックされたリソース、許可した外部ドメイン、確認ブラウザを残します。
unsafe-inlineや広い許可を残すと防御効果が弱くなります。一方で急に強制すると、正規のCDN、タグ管理、API呼び出し、frame埋め込みまで止まることがあります。
CSP(Content-Security-Policy)は、ブラウザに読み込んでよいスクリプト、画像、CSS、frame、接続先を伝えるHTTPヘッダーです。XSSの被害軽減、外部スクリプト制御、クリックジャッキング対策で使います。
実務では、script-src、style-src、img-src、connect-src、object-src、frame-ancestors、nonce、hash、report-uriやreport-toを確認します。
証跡には、対象URL、CSPヘッダー全文、Report-Only有無、違反レポート、ブロックされたリソース、必要な外部ドメイン、確認ブラウザを残します。
CSPは強力ですが、既存画面にそのまま適用すると、正規のJavaScript、CDN、タグ管理、画像、API呼び出しまで止めることがあります。最初はContent-Security-Policy-Report-Onlyで影響を集めます。
違反レポートは、攻撃だけでなく通常機能の依存先も含みます。業務上必要な読み込み先と不要な読み込み先を分けてから強制へ進みます。
script-srcでunsafe-inlineを許すと、インラインスクリプトの実行を広く許すため、XSS軽減効果が弱くなります。可能ならnonceやhashで必要なスクリプトだけ許可します。
既存アプリでは、フレームワーク、テンプレート、タグ管理ツールがインラインコードに依存している場合があります。実装変更と運用設定の両方で解消します。
CSPのframe-ancestorsは、そのページをどの親ページに埋め込ませるかを制御します。X-Frame-Optionsより柔軟に許可先を指定できます。
クリックジャッキング対策では、XFOとCSPの両方が設定されている場合の整合を確認します。業務ポータルや外部SaaSに正規埋め込みがあるなら、拒否しすぎない設計が必要です。
CSP対応では、対象URL、ポリシー値、Report-Only期間、違反レポートの分類、許可した外部ドメイン、例外理由を残します。設定文字列だけでは、なぜ許可したかが分かりません。
引き継ぎでは、Webアプリ担当、セキュリティ担当、タグ管理担当、関連語としてXSS、SRI、XFO、CORSを残すと確認しやすくなります。
同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。