跨站脚本攻击とは

本文约需 2 分钟阅读

クロスサイトスクリプティング (XSS: Cross-Site Scripting) とは、Web ページに 悪意あるスクリプトを注入する攻撃手法です。攻撃者が仕込んだ JavaScript が 被害者のブラウザで実行され、Cookie の窃取、セッションハイジャック、 フィッシングページへのリダイレクトなどが行われます。 2024 年の OWASP Top 10 でもインジェクション攻撃の一種として上位に位置しており、 Web アプリケーションの脆弱性の中で最も一般的なものの一つです。

現場での使用例

「お問い合わせフォームの入力値がサニタイズされておらず、格納型 XSS が 見つかりました。管理画面で問い合わせ内容を表示する際にスクリプトが実行され、 管理者のセッション Cookie が外部に送信される状態でした。」

XSS 攻撃のフロー

悪意あるスクリプト注入
被害者がページ閲覧
ブラウザでスクリプト実行
Cookie・セッション窃取

XSS の種類

反射型 XSS は URL パラメータに含まれたスクリプトがそのままページに反映される型です。 格納型 XSS はデータベースに保存されたスクリプトが他のユーザーに表示される型で、 掲示板や SNS のコメント欄が狙われやすく、より深刻な被害をもたらします。 DOM ベース XSS はクライアントサイドの JavaScript の処理に起因する型で、 サーバーを経由しないため検出が困難です。XSS と Web セキュリティの書籍 (Amazon)で詳しく学べます。

具体的な被害シナリオ

よくある誤解は「XSS は見た目を変えるだけの軽微な攻撃」というものです。 実際には、格納型 XSS を使って EC サイトの商品レビュー欄に悪意あるスクリプトを 埋め込み、レビューを閲覧した全ユーザーのセッション Cookie を窃取する といった深刻な攻撃が可能です。窃取された Cookie を使えば、攻撃者は 被害者のアカウントで商品を購入したり、登録情報を変更したりできます。 また、フィッシングと組み合わせて、 正規サイト上に偽のログインフォームを表示させる手口も確認されています。

ユーザーとしての対策

ブラウザを最新に保ち、不審なリンクをクリックしないことが基本です。 パスつく.com で生成したユニークなパスワードをサービスごとに使い分けることで、 XSS 攻撃でセッションが乗っ取られても他のサービスへの被害拡大を防げます。 ブラウザの拡張機能で JavaScript の実行を制限することも有効な対策です。ブラウザセキュリティの書籍 (Amazon)も参考になります。

相关术语