3

私はSymfony2を使用しており、フォームを CSRF トークンで保護しています。Ajax呼び出し
に基づくコメント システムがあります。ユーザーが自分のコメントを編集したい場合は、次のようになります。

  • ユーザーが編集ボタンを押します。
  • 新鮮な」コメント編集フォームが ajax 経由で読み込まれます。
  • ユーザーは ajax を介してフォームを編集および送信します。
  • 編集されたコメントが返信されます。

ajaxを介して「新鮮な」編集フォームをロードするとセキュリティ上のリスクがありますか?

フォームが既に読み込まれたページにあり、ajax 経由でリクエストできなかった場合、攻撃者は CSRF トークンを推測できませんでしたが、フォームをリクエストできるため、トークンを手に入れることが
できました.. ?

多分例はそれをより明確にするでしょう:

Daveは、私のサイト ( ) の罪のない登録ユーザーwww.acme.comです。
Daveは私のサイトにログインしてから にアクセスしましwww.evil.comた。彼はそれを知りませんが、彼が訪れevil.comたとき、スクリプトが実行されました。
スクリプトは ajax リクエストを送信し、www.acme.com/comments/123/editそれに応じて編集フォームを取得しました。
次に、そのフォームに悪意のあるコンテンツを入力し、そのフォームを (再び ajax を使用して) 送信しました。

悪の悪の計画はうまくいくでしょうか?

4

1 に答える 1

2

私の知る限り、フォームに CSRF トークン フィールドが含まれていてもリスクはありません。デフォルトの Symfony2 CSRF トークンは、攻撃者が利用できないセッション (および意図) に依存します。したがって、攻撃者がフォームを要求すると、攻撃者 (ユーザーではなく) のセッション ID が使用されます。

于 2013-01-03T18:52:37.333 に答える