主な違い: XSSとCSRFは、2種類のコンピュータセキュリティの脆弱性です。 XSSはCross-Site Scriptingの略です。 CSRFはCross-Site Request Forgeryの略です。 XSSでは、ハッカーは特定のWebサイトに対するユーザーの信頼を利用します。 一方、CSRFでは、ハッカーは特定のユーザーのブラウザに対するWebサイトの信頼を利用します。
XSSはCross-Site Scriptingの略です。 クロスサイトスクリプティングは、悪意のあるハッカーが動的なフォームにスクリプトを挿入するセキュリティ上の悪用です。 現在、Webサイトに見られる最も一般的なセキュリティの脆弱性と見なされています。 XSSでは、ハッカーが悪意のあるクライアントサイドのスクリプトをWebサイトに挿入します。 このスクリプトは、被害者に対して何らかの形の脆弱性を引き起こすために追加されています。
攻撃者またはハッカーはこの目的のためにJavaScript、VBScript、ActiveX、HTMLまたはFlashを使用します。 攻撃が成功すると、ハッカーはさまざまな方法で害を及ぼす可能性があります。 たとえば、攻撃者はアカウントをハイジャックしたり、ユーザーの設定を変更したりする可能性があります。 悪意のあるリンクがその目的で使用されているXSSの一般的な例を見ることができます。 隠された悪質なコードを含むリンクが作成され、ユーザーはそれをクリックするよう求められます。 ユーザーがクリックすると、悪意のあるコードがクライアントのWebブラウザで実行されます。
クロスサイトスクリプティング攻撃は、大きく2つのタイプに分けられます。
- 永続的 - この種の脆弱性では、悪意のあるデータがデータベースに恒久的に保存され、後で知らないうちに被害者によってアクセスされ実行される。
- 非永続的 - この種の脆弱性では、悪意のあるハッカーによって提供されたデータが、遅滞なくその特定のインスタンスで使用されます。
CSRFはCross-Site Request Forgeryの略です。 ワンクリック攻撃またはセッションライディングとも呼ばれます。 ターゲットとなるWebサイトのユーザーに対する信頼を利用します。 悪意のある攻撃は、攻撃の知識がなくてもユーザーが標的のWebサイトに悪意のある要求を送信するように設計されています。 CSRFを利用して攻撃者がいくつかのタスクを実行することができます。たとえば、一部のコンテンツを掲示板に投稿したり、株を取引したり、eカードを郵送することができます。 CSRF攻撃を実行するための最も一般的な方法の1つは、HTML画像タグまたはJavaScript画像オブジェクトを使用することです。
この種の脆弱性はブラウザだけではありません。 悪意のあるスクリプトは、ワードドキュメント、Flashファイル、ムービーなどを介して実行される可能性もあります。CSRFの重要な機能のいくつかは次のとおりです。
- 攻撃者の意図に依存するため、被害者がログインすることは必須ではありません。
- 攻撃者が標的のサイトに対して複数の要求を生成する可能性があります。
- それは他の種類の攻撃と非常にうまくいきます。
- 一般に、攻撃を受けたサイトからのデータは攻撃者によって読み取ることができず、これはCSRFの制限として機能します。
XSSとCSRFの比較
XSS | CSRF | |
完全形 | クロスサイトスクリプティング | クロスサイトリクエストフォージェリ |
定義 | XSSでは、ハッカーがWebサイトに悪意のあるクライアントサイドのスクリプトを挿入します。 このスクリプトは、被害者に対して何らかの形の脆弱性を引き起こすために追加されています。 | ターゲットとなるWebサイトのユーザーに対する信頼を利用します。 悪意のある攻撃は、攻撃の知識がなくてもユーザがターゲットのWebサイトに悪質な要求を送信するように設計されています。 |
依存 | 検証されていないデータによる任意のデータの注入 | 攻撃バンドルを取得して実行するためのブラウザの機能と機能 |
JavaScriptの必要条件 | はい | いいえ |
調子 | サイトによる悪意のあるコードの受け入れ | 悪意のあるコードは第三者のサイトにあります。 |
脆弱性 | XSS攻撃に対して脆弱なサイトは、CSRF攻撃に対しても脆弱です。 | XSSタイプの攻撃から完全に保護されているサイトは、依然として最も可能性の高いCSRF攻撃に対して脆弱です。 |