セッションをRedisに移行するときに開始されたCSRFトークンに問題があります。問題は、ユーザーがログアウトしてログイン画面を長時間放置することです。一晩中その後、午前中に、redisセッションがサーバー(TTL)から削除されたため、CSRFトークンの形式がもう無効であるため、最初のログイン試行は常に失敗します。セッションが期限切れになった後、CSRFトークンの真正性を検証できません - Rails + devise + redis
私は数時間オンラインで検索しましたが、何が正しいかわかりません。このファイルを追加すると、問題を解決します
class SessionsController < Devise::SessionsController
skip_before_filter :require_no_authentication, only: [:new]
end
私read online、これはセキュリティ上のリスクは何かから。新鮮なトークン を取得するために、サーバから新しいトークンを返し、再送信フォーム
- 失敗した上:私は探し続け、いくつかの選択肢を見て
- トークンをログインコントローラの要求ヘッダーに追加する
セキュリティリスクを正しく理解していれば、どのような方法でセキュリティ問題が解決されるのかわかりません。つまり、保護されていないログインAPIのリスクは、攻撃者が他のユーザーを騙して攻撃者のプロフィールにサインインしてプライベートデータを入力し、攻撃者が利用できるようにすることです。したがって、これらのソリューションのいずれかを使用すると、攻撃者は同じ動作を模倣して自分自身をハックすることができますか?
この問題を解決する最も安全な方法は何ですか?