web-dev-qa-db-ja.com

CSRFトークンが原因で戻るボタンのナビゲーションの問題?

レガシーWebアプリケーションがあり、それをCSRFから保護する必要があります。アプリケーションの機能を損なうことなく問題を解決しようとしましたが、ナビゲーションに関連する問題が発生しました。

トークンを生成してフォームとセッションに保存することで、ブラウザの戻るボタンに関連する問題を防ぐことができますか?

最初のフォームを `` test1.jspで送信し、2番目のフォームをtest2.jspで送信したとしましょう。この時点で、ブラウザの戻るボタンを使用して戻ってナビゲートし、test1.jspに移動してフォームを送信しようとすると、キャッシュページとセッションのトークン値が異なるため、エラーがスローされます。応答ヘッダーを使用してキャッシュストレージを防止し、サーバーから戻るボタンでデータをロードしようとしましたが、アプリケーションはこの時点で壊れています。私のアプリケーションはStrutsフレームワークを使用しており、Strutsトークンメソッドを使用しようとしましたが、戻るボタンを克服するのに役立ちませんでした問題。

トークンを使用して、このブラウザの戻るボタンの問題を解決する方法はありますか?

2
Girish

リクエストごとに新しいトークンを作成する必要はありません。代わりに、 OWASP CSRFチートシート に従って、各セッションのトークンを作成します。同じセッションが両方に使用されるため、test1.jspおよびtest.jsp、戻るボタンは問題ではなくなります。

3
Neil Smithline