クロスサイトスクリプティングとは
この記事は約 2 分で読めます
クロスサイトスクリプティング (XSS: Cross-Site Scripting) とは、 Web ページに悪意あるスクリプトを注入する攻撃手法です。攻撃者が仕込んだ JavaScript が被害者のブラウザで実行され、 Cookie の窃取、セッションハイジャック、フィッシングページへのリダイレクトなどが行われます。 2024 年の OWASP Top 10 でもインジェクション攻撃の一種として上位に位置しており、 Web アプリケーションの脆弱性の中で最も一般的なものの一つです。
現場での使用例
「お問い合わせフォームの入力値がサニタイズされておらず、格納型 XSS が見つかりました。管理画面で問い合わせ内容を表示する際にスクリプトが実行され、管理者のセッション Cookie が外部に送信される状態でした。」
XSS 攻撃のフロー
XSS の種類
反射型 XSS は URL パラメータに含まれたスクリプトがそのままページに反映される型です。格納型 XSS はデータベースに保存されたスクリプトが他のユーザーに表示される型で、掲示板や SNS のコメント欄が狙われやすく、より深刻な被害をもたらします。 DOM ベース XSS はクライアントサイドの JavaScript の処理に起因する型で、サーバーを経由しないため検出が困難です。XSS と Web セキュリティの書籍 (Amazon)で詳しく学べます。
具体的な被害シナリオ
よくある誤解は「 XSS は見た目を変えるだけの軽微な攻撃」というものです。実際には、格納型 XSS を使って EC サイトの商品レビュー欄に悪意あるスクリプトを埋め込み、レビューを閲覧した全ユーザーのセッション Cookie を窃取するといった深刻な攻撃が可能です。窃取された Cookie を使えば、攻撃者は被害者のアカウントで商品を購入したり、登録情報を変更したりできます。また、フィッシングと組み合わせて、正規サイト上に偽のログインフォームを表示させる手口も確認されています。
ユーザーとしての対策
ブラウザを最新に保ち、不審なリンクをクリックしないことが基本です。サービスごとに固有のランダムパスワードを使い分けることで、 XSS 攻撃でセッションが乗っ取られても他のサービスへの被害拡大を防げます。ブラウザの拡張機能で JavaScript の実行を制限することも有効な対策です。ブラウザセキュリティの書籍 (Amazon)も参考になります。
この記事は役に立ちましたか?