3

csrf 緩和策について質問があります。文献では、各ページでトークンを使用することを推奨しています。このトークンは、フォームと共に送信する必要があります。このトークンは、トランザクションが発生するために有効である必要があります。

ページにトークンがあるとcsrfからどのように保護されますか? http はステートレスなので、http GET 要求を作成し、html からトークンを解析し、そのトークンを (制限時間内に) POST で使用することはできませんか?

4

2 に答える 2

4

はい、できます。しかし、それは CSRF ではありません。CSRF とは、実行するつもりのないアクションをこっそりと実行させることです。たとえば、特定の Web サイトにログインしていて、次のようなリンクをクリックするように仕向けたとします。

http://test.com/action.php?delete_id=324

リンクをクリックすると、残念なことに、削除したくないリソースを削除してしまうことになります。または、次のように画像を表示させたらどうなるでしょうか (src を見てください)。

<img src="http://test.com/action.php?delete_id=324" />

しかし、action.php がトークンを必要とした場合はどうなるでしょうか? 次に、私 (攻撃者) は、現在使用しているトークンを特定する必要があります。

http://test.com/action.php?delete_id=324&token=89723gdeHDdhipd823igb9bd87309287bhdebvtaGY

それ以外の場合、アクションは実行されず、リクエストは拒否されます (または、少なくとも拒否されるはずです)。

于 2013-07-18T07:19:56.060 に答える
1

CSRF 保護は、DOM 解析またはボットがトークンを取得してフォームを送信するのを防ぐようには設計されていません。CSRF とは、悪意のあるサイトが、設定を変更したり、ログインしているユーザーのアカウントでアクションを実行したりする目的で、ターゲット サイトにフォームまたはリクエストを送信することです。

フォームが送信されると、ターゲット サイトのユーザーの Cookie がリクエストと共に送信されるため、CSRF 対策トークンがないと、悪意のあるサイトがユーザーのアカウントに影響を与えたり、ターゲット サイトで何らかのアクションを実行したりする可能性があります。悪意のあるサイトがユーザー固有のアンチ CSRF トークンを取得する方法がないため、試行は失敗します。

于 2013-07-18T07:19:36.017 に答える