XSS
えっくすえすえす
XSS
一言でいうと
ユーザーの入力に紛れて悪意あるスクリプトを実行させる攻撃のこと。
詳しい意味
XSS(Cross-Site Scripting、クロスサイトスクリプティング)は、ユーザーが入力したテキスト(コメント、検索キーワード、プロフィール文など)に紛れて悪意のあるJavaScriptを埋め込み、それが他のユーザーのブラウザ上で実行される攻撃です。Cookieを盗まれて成りすまし、画面の改ざん、フィッシング誘導など被害は深刻です。対策の基本は「出力時のエスケープ」(< や > を < > に変換)と「Content Security Policy(CSP)」でのスクリプト実行制限。React など現代のフレームワークは標準で出力エスケープしてくれるが、`dangerouslySetInnerHTML` のような迂回手段で破る事故が起きやすいです。
何に使うか
ユーザー入力を画面に表示する全ての箇所で対策が必要。コメント欄、検索結果、ユーザープロフィール、エラーメッセージなど。
どんな時に出るか
「XSS脆弱性が見つかった」「サニタイズしてからレンダリング」「CSPで防御層を増やす」といった場面で登場します。
具体例
- ユーザーのコメントを表示する処理で出力エスケープが抜けていてXSS脆弱性になっていた。
- Content Security Policy を設定して、許可していない外部スクリプトの実行を遮断した。
別名・略称
xss(えっくすえすえす)Cross-Site Scripting(くろすさいとすくりぷてぃんぐ)
関連語
間違えやすい語
初心者向けメモ
ホテルの「お客様の声」掲示板に、誰かが「ふつうの感想」と見せかけて「次にこの掲示板を見た人の財布を抜く仕掛け」を仕込むイメージです。掲示板(あなたのサイト)が仕掛けの実行場所にされてしまいます。