
DOM-based Cross Site Scripting(以下、DOM-Based XSS)は2015年頃から活発化した、Webアプリケーションにおける深刻なセキュリティ問題です。JavaScriptの評価結果によってHTMLドキュメント構造が変更され、悪意のあるスクリプトをページ上で実行させてしまう仕組みに起因します。
この記事の目次
- DOM-Based XSSとは何か
- 仕組みと脆弱性の原因
- 他のXSSタイプとの違い
- 防御策とセキュリティ対策
- まとめ
DOM-Based XSSとは何か

DOM-Based XSSは、悪意のあるユーザーがJavaScriptを介してWebページ上に注入するスクリプトを利用する手法です。
この技術は主にJavaScriptのeval関数やinnerHTMLプロパティによって引き起こされます。
たとえば、ユーザーがURLへの入力欄にという文字列を直接入力した場合、該当ウェブサイト上で意図せずスクリプトが実行されてしまう可能性があります。
仕組みと脆弱性の原因

攻撃者は、Webページ上のフォームやURLに特別な文字列を含むリンクを送信することで、ユーザーのブラウザ上で悪意のあるスクリプトが動作するようにします。
これらの脆弱性は通常、開発者が不適切な入力を検証せずにそのまま利用した結果生じます。特にevalやinnerHTML等の危険度が高い関数を使用している場合に注意が必要です。
他のXSSタイプとの違い

DOM-Based XSSは、その他のXSSと比べて、スクリプトの評価がブラウザ上で行われる点で異なります。
StoredやReflected XSSでは、悪意のあるスクリプトはサーバー側から送られてくることが一般的です。しかし、DOM-based XSSの場合、ユーザーからの入力によりJavaScript自体が生成される仕組みとなっています。
防御策とセキュリティ対策

JavaScriptコードにおいては、ユーザーデータを適切にエスケープすることで攻撃を防ぐことができます。また、DOM操作を極力抑制することも重要です。
さらに、コンテンツセキュアポリシーや最新の脆弱性スキャンツールを利用すれば、より堅牢な対策が可能となります。
まとめ
そのような理由から、開発者や管理者はDOM-Based XSSに対する理解を深め、適切な防御手段を講じるべきです。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント