DOM-based XSSとReflected XSSの主な違いは、DOM-based XSSは、信頼できないソースからのデータを、DOM内の潜在的に危険なシンクに書き込んで処理するタイプのXSSであることです。
しかし、反射型XSSは、アプリケーションがHTTPリクエストでデータを取得し、そのデータを安全でない方法で即時レスポンス内に含むときに発生するXSSの一種です。
一般に、XSSはクロスサイトスクリプティングの略で、一般的なウェブサイトの攻撃です。
これは、ウェブサイトのユーザーのクッキーの詳細を盗むことができます。
また、ユーザーの設定を変更したり、さまざまなマルウェアのダウンロードを表示させたりすることも可能です。
さらに、攻撃者はフィッシング攻撃も行うことができます。
一般的に、XSSコードを記述するための共通言語はJavaScriptです。
XSS攻撃には様々な種類があり、DOMベースのXSSと反射型XSSの2種類があります。
DOMベースXSSとは
DOM-based XSS は、高度な XSS 攻撃の一つです。
ここでは、ウェブアプリケーションがDOMからデータを読み出し、ブラウザに出力します。
また、データの取り扱いが不適切な場合、攻撃者はペイロードを注入し、DOMの一部として保存することができます。
一般的に、DOMベースのXSS攻撃は、クライアントサイドの攻撃です。
これらの攻撃では、悪意のあるペイロードがサーバーに送られることはありません。
Web Application Firewall (WAF)やセキュリティエンジンは、サーバーログに記録が残らないため、検知することが困難です。
Reflected XSSとは
Reflected XSSまたはNon-persistent XSSは、XSSの一種である。
このタイプでは、攻撃者のペイロードは、Webサーバーに行くリクエストの一部となります。
そして、HTTPレスポンスにHTTPリクエストのペイロードが含まれる形でリフレクションバックされます。
攻撃者は、悪意のあるリンクやフィッシングメールなどを使って、ユーザーにサーバーへのリクエストを送信させることができます。
最終的に、反射されたXSSのペイロードは、ユーザーのブラウザで実行されます。
Reflected XSSは永続的な攻撃ではないため、攻撃者は各被害者にペイロードを配信する必要があります。
DOMベースXSSと反射型XSSの違い
定義
DOM-based XSS は、Document Object Model (DOM) にデータを書き込むことで発生する、高度なタイプの XSS です。
しかし、反射型 XSS は、攻撃者のペイロードがウェブサーバーに送信されるリクエストの一部である、2番目で、最も一般的なタイプの XSS です。
機能性
DOM ベースの XSS は、信頼できないソースからのデータを処理し、DOM 内の潜在的に危険なシンクにデータを書き込むことで発生しますが、反射型 XSS は、アプリケーションが HTTP リクエストでデータを取得し、そのデータを安全でない方法で即時レスポンス内に含む場合に発生します。
このように、DOMベースのXSSと反射型XSSの主な違いは、ここにあります。
複雑さ
さらに、DOM ベースの XSS 攻撃は、反射型 XSS 攻撃よりも複雑です。
したがって、これも DOM ベース XSS と反射型 XSS の違いのひとつです。
結論
XSS 攻撃には、DOM ベース XSS と Reflected XSS の 2 種類があります。
DOM-based XSS と Reflected XSS の主な違いは、その機能性です。
DOM-based XSSは、信頼できないソースからのデータを、DOM内の潜在的に危険なシンクに書き込むことで処理するタイプのXSSです。
しかし一方で、Reflected XSSは、アプリケーションがHTTPリクエストでデータを取得し、そのデータを安全でない方法で即時レスポンス内に含む場合に発生するXSSの一種です。