0

Cookieが有効になっていない場合、フォーム投稿はをスローしActionController::InvalidAuthenticityTokenます。ほとんどの場合、アプリケーションにログインするにはCookieが必要であることを示すメッセージで例外を処理します。

ただし、私のアプリケーションのユーザーができることの1つは、ログインしている場合とログインしていない場合がある他の人と共有するコンテンツを作成することです(必須ではありません)。さらに、作成者がそうすることを選択した場合、このコンテンツはパスワードで保護することができます。これは私が問題にぶつかっているところです。重要な場合は、を使用してactive_record_storeおり、設定session_storeも行っていconfig.action_controller.sessionます。

訪問者がCookieを有効にせずにパスワードで保護されたコンテンツのロックを解除しようとすると、アプリケーションは例外をスローし、訪問者の観点からはクラッシュします。このような状況に対処できるようにしたいと思いますが、どうすればよいかわかりません。例外を処理し、Cookieをチェックせずにコンテンツのロックを解除できるようにすることはできますが、そうすると、とにかく脆弱性が発生するため、CSRFに対するアクションを保護しない方がよいでしょう。または、フォームを認証できるようにCookieを有効にするように要求することもできますが、この状況でCookieを要求する理由は実際にはありません。

正しく理解していれば、そのアクションの保護を無効にすると、ロック解除された保護されたコンテンツがCSRFの脆弱性にさらされるだけですが、Cookieが有効になっていない場合は、問題になりますか?クッキーの不足を処理しながら保護する方法はありますか?

4

1 に答える 1

1

そのアクションのためにそれを無効にすることは問題ではないと思います。偽造防止は、アプリのデータに何らかの影響を与えるアクションにのみ本当に役立ちます。

于 2010-07-06T20:58:02.560 に答える