web-dev-qa-db-ja.com

XSSとCSRFの違いは何ですか?

クロスサイトスクリプティングとクロスサイトリクエストフォージェリについて知っています。それらに類似点があるかどうか知りたいですか?

25
codeur

クロスサイトリクエストフォージェリ攻撃では、攻撃者は意図していないリクエストを強制的に実行させます。これは、パスワードを不本意に変更するリンクを送信している可能性があります。悪意のあるリンクは次のようになります。

https://security.stackexchange.com/account?new_password=abc123

クロスサイトスクリプティング攻撃では、攻撃者はクライアント側のコード(おそらくJavaScript)を不本意に実行させます。典型的な反射XSS攻撃の試みは次のようになります。

https://security.stackexchange.com/search?q="><script>alert(document.cookie)</script>

どちらの攻撃にも、クライアント側の攻撃であり、何らかの形のユーザーアクティビティ(リンクのクリックやWebサイトへのアクセスなど)が必要であるという共通点があります。 [〜#〜] rfi [〜#〜] または SQLi の脆弱性とは異なり、サーバーではなくユーザーを攻撃しています。 XSSは通常、CSRFよりも強力です。これは、CSRFが特定のアクション(パスワードの変更など)に制限されている場合でも、通常、任意のスクリプトコードの実行を許可するためです。 @Lukasが指摘するように、成功したXSS攻撃は、すべてのCSRF対策も効果的に回避します。

51
Arminius