1

応答にトークンを追加することに依存する XSRF ソリューションをいくつか読んだことがあります。これは、POST でのみ実行されるコードを保護するのに役立ちます。

つまり、これは HTTP GET に応答するページに依存するワンステップ攻撃になります。

<img src="http://amazon.com/buybook/anarchistscookbook/mailto/me/execute.php">

しかし、jquery のような優れたライブラリを使用すると、悪意のある Javascript XmlHttpRequest スクリプトを簡単に記述できるようになり、2 段階の攻撃 (GET、Anti-XSRF ビューステート/クエリ文字列/追加の Cookie などの解析) を実行してから POST を送信できます。(それとも? AES がすぐにクラックされる心配はありません。HTTP POST アクションをターゲットとする 2 ステップ XSRF 攻撃が、上記の img タグ攻撃と同じくらい簡単になることを心配する必要がありますか?)

1 ステップ攻撃は、ほとんどの場合、GET で機密性の高い操作を行わないことで阻止できると思います。両方の種類の攻撃は、Web サイトのユーザーに CAPTCHA を解決するよう要求することで阻止できます。CAPTCHA は、すべての URL に必要なクエリ文字列トークンを生成します。残りのセッションは?

これまでのところ、OCR ソフトウェアがテキストを読み取れる場合や機械的なターク コンポーネントがある場合など、CAPTCHA が失敗した場合にのみ失敗するようです。

編集: 念頭に置いている特定の攻撃は、xhr javascript またはイメージ タグを含む電子メールです。そのため、コードは電子メール クライアントのブラウザで実行されるか、ローカル ファイル システムから読み込まれた HTML ページから実行されます。簡単にするために、このサイトには XSS 脆弱性がない (つまり、サイトが応答として送信する HTML に悪意のあるユーザーが HTML を挿入する機会がない) と想像しています。

4

3 に答える 3

1

要点は、JavaScript はクロスドメイン コンテキストからアンチ XSRF トークンを読み取ることができず、XMLHTTPRequest は同じオリジンのみであるため、トークンを盗むために使用できないということです。

サイトにすでに XSS の脆弱性がある場合は、すでに不安になっており、アンチ XSRF トークンは役に立ちません。

于 2009-07-02T04:37:17.593 に答える
1

最近では、XmlHttpRequests も JavaScript フレーム操作もクロスドメインで機能しません。それはまったくの狂気でしょう。最近のCSRF攻撃は通常、あなたが言及したようなイメージタグか、別のサイトにPOSTするフォームの自動生成のいずれかで構成されています. ただし、アンチ XSRF トークン (おそらくセッションごとに生成される暗号ナンス) を取得することはほとんど不可能です。ユーザーセッションとIPアドレスをチェックしない非常に貧弱なトークンである場合にのみ、サーバー側の言語を利用してそれを取得し、クライアント側のCSRFと組み合わせることができます. トークンは別として、リファラーをチェックしてすべてのリモート ドメインをブロックするだけで、多くの人が CSRF を阻止しています。ドメインの制限により、XmlHttpRequests で CSRF を送信することは事実上不可能です。

とにかく、XmlHttpRequest がリモート ドメインにアクセスできることを心配する必要はありません。そのようなことが起こり得るのは、XSS の脆弱性がある場合だけです。

于 2009-07-02T04:44:38.187 に答える