Cookieが有効になっていない場合、フォーム投稿はをスローしActionController::InvalidAuthenticityToken
ます。ほとんどの場合、アプリケーションにログインするにはCookieが必要であることを示すメッセージで例外を処理します。
ただし、私のアプリケーションのユーザーができることの1つは、ログインしている場合とログインしていない場合がある他の人と共有するコンテンツを作成することです(必須ではありません)。さらに、作成者がそうすることを選択した場合、このコンテンツはパスワードで保護することができます。これは私が問題にぶつかっているところです。重要な場合は、を使用してactive_record_store
おり、設定session_store
も行っていconfig.action_controller.session
ます。
訪問者がCookieを有効にせずにパスワードで保護されたコンテンツのロックを解除しようとすると、アプリケーションは例外をスローし、訪問者の観点からはクラッシュします。このような状況に対処できるようにしたいと思いますが、どうすればよいかわかりません。例外を処理し、Cookieをチェックせずにコンテンツのロックを解除できるようにすることはできますが、そうすると、とにかく脆弱性が発生するため、CSRFに対するアクションを保護しない方がよいでしょう。または、フォームを認証できるようにCookieを有効にするように要求することもできますが、この状況でCookieを要求する理由は実際にはありません。
正しく理解していれば、そのアクションの保護を無効にすると、ロック解除された保護されたコンテンツがCSRFの脆弱性にさらされるだけですが、Cookieが有効になっていない場合は、問題になりますか?クッキーの不足を処理しながら保護する方法はありますか?