概要
XSS(クロスサイト・スクリプティング)とは、Webサイトのセキュリティ上の弱点を利用して、
悪意のあるスクリプト(主にJavaScript)を他のユーザーのブラウザで実行させる攻撃手法です。
入力フォームやURLなどを通じて、攻撃者が仕込んだコードがサイト上に表示・実行され、
ユーザーの情報を盗まれたり、不正な操作をさせられることがあります。
正式名称
Cross-Site Scripting(クロスサイト・スクリプティング)
※「スクリプティング」は「スクリプト(Script)」を書くことを意味します。
略称
XSS(エックス・エス・エス)
※「CSS(スタイルシート)」と混同しないように、意図的に「X」を使って表現されています。
特徴
- Webアプリケーションの脆弱性を突く攻撃
- 被害者のブラウザ上で悪意あるスクリプトが実行される
- JavaScriptがよく使われる
- ユーザーのクッキーやセッション情報が盗まれることがある
- 被害に気づきにくく、密かに情報を抜き取られる可能性がある
- フォームやURL、コメント欄などが主な攻撃ポイント
- 正しい入力チェックやエスケープ処理で防止できる
具体例
例1:コメント欄へのスクリプト挿入
ある掲示板に次のようなコメントを投稿:
<script>alert("あなたのセッション情報:" + document.cookie);</script>
この掲示板がコメントの内容をそのまま表示してしまう仕様だった場合、
他の閲覧者がこのページを見たとき、ポップアップでセッション情報が表示されてしまう。
※実際には、情報を盗んで攻撃者に送信するコードが使われます。
関連用語
用語 | 解説 |
---|---|
CSRF(シー・エス・アール・エフ) | クロスサイト・リクエスト・フォージェリ。 ユーザーの意図しない操作をさせる攻撃手法。 |
セッションハイジャック | 他人のセッションIDを使って、その人になりすます攻撃。 XSSと組み合わさることが多い。 |
エスケープ処理 | ユーザーの入力を安全に表示するために、 HTMLやスクリプトとして解釈されないよう変換する処理。XSS対策に重要。 |
サニタイズ(Sanitize) | 不正な入力を取り除いたり無害化すること。 |