CSP
CSP(Content Security Policy)は、HTTP ヘッダーでページが読み込めるリソースのオリジンを宣言し、XSS やデータ注入の攻撃面を縮める。
目的
ページがリソースを読み込めるオリジンをホワイトリスト化することで、XSS とコンテンツ注入を防ぐ。
メカニズム
Content-Security-Policy ヘッダーはディレクティブを宣言する: default-src はデフォルトのソース、script-src はスクリプトのソース、style-src はスタイルのソースを定める。nonce や hash でインラインスクリプトを許可でき、report-uri は違反を報告する。厳格な CSP は nonce と strict-dynamic を組み合わせる。
ユースケース
- XSS の緩和
- サードパーティスクリプトの制限
- インラインスクリプトの制御
- 違反レポートの収集
例
- 入力
script-src 'self' 'nonce-abc'OutputOnly same-origin and nonce-tagged scripts are allowedWhitelisting
よくあるエラー
- An overly strict CSP breaks page functionality
- Observe first with Report-Only mode
関連用語
CORS
CORS(Cross-Origin Resource Sharing)は、HTTP ヘッダーでページが別のオリジンのリソースにアクセスできるかを制御するブラウザのセキュリティ機構であり、クロスサイトな読み取りを防ぐ。 用語集
XSS
XSS(クロスサイトスクリプティング)は、攻撃者が悪意あるスクリプトをページに注入し、他のユーザーのブラウザで実行させる攻撃である。保存型、反射型、DOMベース型がある。 用語集
Security Header
セキュリティ HTTP ヘッダーとは、ブラウザにセキュリティ機構の有効化を指示するレスポンスヘッダーである。CSP、HSTS、X-Frame-Options などが代表例である。 用語集
Content Security Policy
Content Security Policy (CSP) とは、HTTP ヘッダーを通じて、ページがリソースを読み込み元としてよいソースのホワイトリストを宣言する仕組みであり、XSS とコンテンツインジェクション対策の中核である。 用語集