Web セキュリティヘッダは AP科目Aと科目B問1で頻出。CSP・HSTS・HttpOnly Cookie・X-Frame-Options など実装側の対策を押さえます。
主要なセキュリティヘッダは6つあります。
CSP (Content-Security-Policy) は XSS やデータ流出への対策、HSTS は HTTPS を強制するものですね。
残りは X-Frame-Options (クリックジャッキング対策) と、Cookie 属性の HttpOnly (JS からのアクセス禁止)・Secure (HTTPS 限定)・SameSite (CSRF 対策) です。
CSP って具体的に何を防いでくれるの?
CSP は『ブラウザに許可するリソースの読み込み元 (script/img/style など) を限定する』ヘッダなのよ。
XSS 攻撃で外部スクリプトを差し込まれても、許可リストにないものは実行されないの。
例えば `default-src 'self'; script-src 'self' https://trusted.cdn.com` のように指定するわ。
HttpOnly と Secure Cookie って、どう違うのぉ…?
HttpOnly は JavaScript の document.cookie からアクセスできなくする属性で (XSS で盗まれない)、Secure は HTTPS 接続時のみ送信する属性です (盗聴されない)。
両方セットするのが推奨です。
さらに SameSite=Strict/Lax で CSRF 対策も追加できます。
AP では『各ヘッダの役割』『対応する攻撃の種類』『安全な Cookie 設定の組合せ』が頻出よ。
実装側のセキュリティ対策の代表として、科目B問1 で記述問題になることもあるわ。
セキュアコーディングの観点でも、なんかポイントある?
OWASP Secure Coding Practices や CWE Top 25 に基づき、入力検証・出力エンコーディング・認証/認可・暗号化・ログ・監査の各層で対策します。
実装後は SAST (静的解析)・DAST (動的解析)・SCA (依存ライブラリ脆弱性スキャン) を CI/CD に組み込むのが標準ですね。
📝 過去問サンプル (記述設問)
A社のWebアプリで、ユーザのセッション ID を JavaScript から取得できる脆弱性が指摘された。Cookie 設定で改善する方策を、40字以内で述べよ。
【模範解答 (例)】 セッション Cookie に HttpOnly 属性を付与し JavaScript からのアクセスを禁止する。(40字) 【減点ポイント】 × 「JavaScript を無効化」 → 機能停止になる過剰対応 × 属性名 (HttpOnly) が不明確 × セキュリティ対策の主体が不明
確認クイズ
Web セキュリティ対策で、XSS (クロスサイトスクリプティング) の影響を限定する目的で設定するブラウザヘッダはどれか。
- Strict-Transport-Security (HSTS)
- Content-Security-Policy (CSP)
- X-Frame-Options
- Cache-Control
こたえを見る
正解: 2. Content-Security-Policy (CSP)
CSP は XSS の影響を軽減する代表的なヘッダ。許可された source からのみスクリプトを実行可能にする。HSTS は HTTPS 強制、X-Frame-Options はクリックジャッキング対策、Cache-Control はキャッシュ制御で目的が異なる。