本文へ移動

XSS(クロスサイトスクリプティング)とは?仕組み・被害・対策

攻撃手法・脅威

監修:JIISセキュリティラボ監修者情報を見る

定義

XSS(クロスサイトスクリプティング)とは、Webサイトの表示に攻撃者のスクリプト(プログラム片)を紛れ込ませ、そのページを見た利用者のブラウザ上で実行させる攻撃です。サイトそのものではなく「サイトの利用者」が直接の被害者になる点が特徴で、ログイン情報の乗っ取りや偽画面への誘導に使われます。

仕組み

掲示板・レビュー欄・検索結果表示など、利用者の入力をページに表示する箇所で、入力値の無害化(エスケープ)が不十分だと、攻撃者が仕込んだ<script>等がそのままHTMLとして解釈され、閲覧者のブラウザで実行されます。

実行されたスクリプトは、ログイン状態を保つCookieの窃取、入力内容の盗み見、偽のログイン画面やマルウェア配布サイトへの誘導などに悪用されます。正規サイトの画面上で起きるため、利用者が異変に気づくのは困難です。

実被害の傾向

会員制サイトでのアカウント乗っ取り、ECサイトでの決済情報の窃取(入力フォームに窃取スクリプトを仕込む手口)、正規サイトを踏み台にしたフィッシング誘導などが典型です。「自社サイトが加害の踏み台になる」ため、被害が利用者に及び、信頼の毀損が大きくなりやすい攻撃です。

対策

サイトドックでの扱い

月次の定期診断では、CSPやCookieの保護属性など、XSSの被害を小さくする設定の有無に加えて、既知の脆弱性パターンとの照合や応答解析で危険な箇所まで確認します。

WAFがXSSを狙う攻撃リクエストをエッジで検知・遮断し、CSPを含むセキュリティヘッダの自動付与でブラウザ側の防御層を追加します。出力エスケープの根本改修が必要な場合は、診断結果で正直に明示し専門家が伴走します。

よくある質問

XSSとSQLインジェクションは何が違いますか?
攻撃の対象が違います。SQLインジェクションはサイトのデータベースを直接攻撃しますが、XSSはサイトの表示を経由して「そのページを見た利用者のブラウザ」を攻撃します。どちらも入力値の扱いの不備が原因で、対策は入力・出力の無害化が基本です。
CSP(Content-Security-Policy)を設定すればXSSは防げますか?
CSPは、許可していないスクリプトの実行をブラウザ側で制限する強力な緩和策ですが、単独ですべてのXSSを防げるわけではありません。出力エスケープの実装を根本対策とし、CSP・Cookie保護属性・WAFを重ねて被害の可能性を下げるのが基本です。
自分のサイトにCSPが設定されているか確認できますか?
ブラウザの開発者ツールでレスポンスヘッダを見れば確認できます。手順は「セキュリティヘッダの確認方法」の解説をご覧ください。サイトドックをご利用の場合は、月次の定期診断の結果としてレポートに掲載されます。

このページの要点

対策の実施と運用まで、まとめて任せるなら

サイトドックは、月次の定期診断で弱点を継続的に見つけ、エッジで治せるものはその場で自動修復する統合型セキュリティサービスです。実施した対策は毎月のレポート(PDF)でお届けします。

資料をダウンロード無料トライアル

お問い合わせ

関連する用語解説

クロスサイトスクリプティングCSP(コンテンツセキュリティポリシー)Cookie の HttpOnly / Secure 属性クロスサイトリクエストフォージェリ

関連ページ

サイトドック(WAF・セキュリティヘッダ自動付与)セキュリティ セルフチェック解説(セキュリティヘッダの確認方法)セキュリティ対策 完全ガイドに戻る
監修:JIISセキュリティラボ(監修者情報)/ 日本情報基盤サービス株式会社www.jiis.co.jp
本ページは一般的な解説であり、個別の環境での適用は専門家にご相談ください。