Content Security Policy (CSP) とは、Web ページが読み込み可能なリソース (スクリプト、スタイルシート、画像、フォント、iframe など) の出所をホワイトリスト方式で制限する HTTP レスポンスヘッダーです。XSS (クロスサイトスクリプティング) 攻撃の被害を大幅に軽減する、多層防御の重要な一層です。
基本的な構文として、Content-Security-Policy: default-src 'self'; script-src 'self' https://cdn.example.com のように、リソースタイプごとに許可するオリジンを指定します。'self' は同一オリジンのみを許可し、外部ドメインは明示的にリストする必要があります。
短縮 URL サービスにおける CSP の重要性は 2 つあります。第一に、短縮 URL のプレビューページやダッシュボードに CSP を適用することで、万が一 XSS 脆弱性が存在しても攻撃者のスクリプト実行を阻止できます。第二に、短縮 URL のリダイレクト先ページが CSP を実装していれば、オープンリダイレクト経由の攻撃チェーンを断ち切れます。
実装上の注意点として、(1) report-uri または report-to ディレクティブで違反レポートを収集し、正当なリソースのブロックを検知する、(2) まず Content-Security-Policy-Report-Only ヘッダーで影響を確認してから本番適用する、(3) インラインスクリプトには nonce または hash を使用し 'unsafe-inline' を避ける、という段階的な導入が推奨されます。