3

私は現在行っているプロジェクトで Python 用の Facebook の Tornado Web エンジンを使用しており、XSRF 保護の実装を計画していましたが、少し混乱しました。

通常のリクエストでは、「_xsrf」Cookie が見つからない場合はユーザーのブラウザに設定し、ブラウザがリクエストで送信した HTML フォームの値に埋め込まれた値と照合します。

攻撃者が次のようなことをしたとしましょう。

<img src="blah.com/transfer_money?account=0098&destination=0099&_xsrf=
(whatever the client's cookie contains)" title="cool image" />

攻撃者が Cookie を完全に使用するのを防ぐにはどうすればよいですか? 私が知る限り、XSRF に使用される Cookie は、check_xsrf_cookie メソッドと実際に XSRF トークンを生成する xsrf_token メソッドの両方から「安全」ではありません。何か足りないのでしょうか...?

4

1 に答える 1

4

私の理解が正しければ、特定のドメインで攻撃者がユーザーの Cookie にアクセスするのを妨げているのは何かという質問です。

答えは、ブラウザのセキュリティ ポリシーです。あるドメインのスクリプトは、他のドメインの Cookie にアクセスできません (ほとんどの場合)。詳細はこちら: http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path

これは、 XSS (クロスサイト スクリプティング)攻撃 (攻撃されたページのソースにスクリプトを直接挿入する)を使用することで回避できます。もう 1 つの方法は、クライアント アプリケーション (ブラウザー) を壊すことです。

ただし、ほとんどの場合、攻撃者が他のドメインからユーザーの Cookie を取得することはできません。セキュリティの追加レベルは、特定の CSRF (または「XSRF」) トークンを特定のユーザーに関連付ける (および検証中にそれをチェックする) ことです。

于 2013-07-11T14:57:02.510 に答える