スクリプト注入攻撃 - XSS(クロスサイトスクリプティング)
悪意あるスクリプトを Web ページに注入する攻撃手法。反射型・格納型・DOM Based の 3 種類がある。
概念図
XSS の 3 つの種類
-
URL パラメータに含まれたスクリプトが、サーバーのレスポンスにそのまま反映されて実行される。フィッシングメールのリンク経由で悪用されることが多い。
-
データベースに保存された悪意あるスクリプトが、他のユーザーがページを閲覧した際に実行される。掲示板やコメント欄が狙われやすく、影響範囲が広い。
-
サーバーを経由せず、クライアントサイドの JavaScript が DOM を操作する際に発生する。
innerHTMLやdocument.writeの不適切な使用が原因。
共通の対策
- 出力時のエスケープ: HTML エンティティに変換する(
<→<など) - Content Security Policy (CSP): インラインスクリプトの実行を禁止する
- HttpOnly Cookie: JavaScript から Cookie にアクセスできなくする
- フレームワークの自動エスケープ: React, Angular などは標準でエスケープする
