XSS(クロスサイトスクリプティング)とは?仕組み・被害・対策
監修:JIISセキュリティラボ監修者情報を見る
定義
XSS(クロスサイトスクリプティング)とは、Webサイトの表示に攻撃者のスクリプト(プログラム片)を紛れ込ませ、そのページを見た利用者のブラウザ上で実行させる攻撃です。サイトそのものではなく「サイトの利用者」が直接の被害者になる点が特徴で、ログイン情報の乗っ取りや偽画面への誘導に使われます。
仕組み
掲示板・レビュー欄・検索結果表示など、利用者の入力をページに表示する箇所で、入力値の無害化(エスケープ)が不十分だと、攻撃者が仕込んだ<script>等がそのままHTMLとして解釈され、閲覧者のブラウザで実行されます。
実行されたスクリプトは、ログイン状態を保つCookieの窃取、入力内容の盗み見、偽のログイン画面やマルウェア配布サイトへの誘導などに悪用されます。正規サイトの画面上で起きるため、利用者が異変に気づくのは困難です。
実被害の傾向
会員制サイトでのアカウント乗っ取り、ECサイトでの決済情報の窃取(入力フォームに窃取スクリプトを仕込む手口)、正規サイトを踏み台にしたフィッシング誘導などが典型です。「自社サイトが加害の踏み台になる」ため、被害が利用者に及び、信頼の毀損が大きくなりやすい攻撃です。
対策
- 出力時のエスケープ処理:利用者入力をHTMLへ表示する際に無害化する実装が根本対策。
- Content-Security-Policy(CSP):許可していないスクリプトの実行をブラウザ側で制限する保険。
- Cookieの保護属性:HttpOnly・Secure 属性で、スクリプトからのCookie窃取を難しくする。
- WAFの導入:典型的なXSS攻撃パターンのリクエストを手前で検知・遮断する。
いま自分のサイトがどうなっているかは、Webサイトの脆弱性の確認方法の手順で確認できます。
サイトドックでの扱い
月次の定期診断では、CSPやCookieの保護属性など、XSSの被害を小さくする設定の有無に加えて、既知の脆弱性パターンとの照合や応答解析で危険な箇所まで確認します。
WAFがXSSを狙う攻撃リクエストをエッジで検知・遮断し、CSPを含むセキュリティヘッダの自動付与でブラウザ側の防御層を追加します。出力エスケープの根本改修が必要な場合は、診断結果で正直に明示し専門家が伴走します。
対策の実施と運用まで任せる場合の仕組み・料金はサイトドックのご案内をご覧ください。
よくある質問
XSSとSQLインジェクションは何が違いますか?
CSP(Content-Security-Policy)を設定すればXSSは防げますか?
自分のサイトにCSPが設定されているか確認できますか?
このページの要点
- XSSは、サイトの表示に攻撃者のスクリプトを紛れ込ませ、閲覧者のブラウザで実行させる攻撃。被害者はサイトの利用者
- 根本対策は出力時のエスケープ。CSP・Cookie保護属性・WAFを重ねて被害の可能性を下げる
- CSP・Cookie保護属性の設定状況は開発者ツールで確認できる(月次の定期診断でも継続的に点検)
- 自動修復はWAFでの遮断とセキュリティヘッダの自動付与に対応。根本改修が必要な場合は正直に明示
対策の実施と運用まで、まとめて任せるなら
サイトドックは、月次の定期診断で弱点を継続的に見つけ、エッジで治せるものはその場で自動修復する統合型セキュリティサービスです。実施した対策は毎月のレポート(PDF)でお届けします。