×
セキュリティ

XSSによって最も狙われやすいのが、Cookie(クッキー)に保存されたセッションIDの窃盗です。JavaScriptの「document.cookie」というプロパティを読み取って外部の攻撃サーバーへ送信されると、攻撃者はそのセッションIDを使って「本人がログイン中である」と偽るセッションハイジャックを実行し、アカウントを完全に乗っ取ることができます。

試験でのポイント

試験対策としては、まず「利用者のブラウザ上で悪意あるスクリプトを実行させる」という仕組みそのものの定義を確実に理解することです。そして、何よりも出題されるのが、XSS脆弱性を防止するための「サニタイジング(エスケープ処理)」に関する問題です。

HTMLサニタイジング: Webアプリケーションで動的にHTMLを出力する際、HTMLタグの開始や終了を意味する特殊記号である「<」「>」「&」「"」「'」などを、ブラウザにプログラムとして認識させないように、文字の実体参照(例:「<」「>」「&」「"」「'」)に置換して無害化(エスケープ)します。試験では、このエスケープ処理が最も根本的な解決策である点を選択肢から選び出せるようになっておく必要があります。
Cookieのセキュア属性とHttpOnly属性: セッション情報の盗難を防ぐための設定です。特に「HttpOnly」属性を付与することで、ブラウザ上のJavaScriptからクッキーデータにアクセスすることを禁止できます。これにより、万が一XSS脆弱性があってスクリプトが実行されても、CookieのセッションIDは盗まれないように保護されます。これも実務的な対策問題として頻出です。

関連する用語

Webブラウザとサーバー間でセッション情報を一時保管する仕組み「Cookie」、ログイン状態を悪用して第三者に不正な要求を送る「CSRF」、Webアプリ層への悪意あるリクエストを遮断するセキュリティツール「WAF」などがあります。