レガシーWebアプリケーションがあり、それをCSRFから保護する必要があります。アプリケーションの機能を損なうことなく問題を解決しようとしましたが、ナビゲーションに関連する問題が発生しました。
トークンを生成してフォームとセッションに保存することで、ブラウザの戻るボタンに関連する問題を防ぐことができますか?
最初のフォームを `` test1.jspで送信し、2番目のフォームをtest2.jspで送信したとしましょう。この時点で、ブラウザの戻るボタンを使用して戻ってナビゲートし、test1.jspに移動してフォームを送信しようとすると、キャッシュページとセッションのトークン値が異なるため、エラーがスローされます。応答ヘッダーを使用してキャッシュストレージを防止し、サーバーから戻るボタンでデータをロードしようとしましたが、アプリケーションはこの時点で壊れています。私のアプリケーションはStrutsフレームワークを使用しており、Strutsトークンメソッドを使用しようとしましたが、戻るボタンを克服するのに役立ちませんでした問題。
トークンを使用して、このブラウザの戻るボタンの問題を解決する方法はありますか?
リクエストごとに新しいトークンを作成する必要はありません。代わりに、 OWASP CSRFチートシート に従って、各セッションのトークンを作成します。同じセッションが両方に使用されるため、test1.jsp
およびtest.jsp
、戻るボタンは問題ではなくなります。