新しいプロジェクトに CSRF 保護を実装しようとしていました。すべてのフォームにセッショントークンを作成して同じことを行い、トークンはフォームの非表示フィールドに保存されます。フォームが送信されるたびに、POST のトークンとセッションのトークンが同じかどうかを確認します。それらが同じである場合、必要なアクションが実行され、セッション トークンが更新されます。
うまく機能しますが、送信されたページを更新すると実際の問題が発生します。その後、トークンの不一致が発生します。
私の質問は、フォームごとに単一のトークンを使用し、フォーム送信ごとにトークンを更新せずに安全ですか? これで CSRF を防ぐことができますか?