私は最近アプリケーションを引き継ぎ、最近アプリスキャンを行ったところ、脆弱性があるとマークされたアイテムを取得しました。レポートが示唆する修復タスクは、悪意のある要求を拒否することでした。レポートによると、appscan は次のことを試しました。
以下の変更が元の要求に適用されました。HTTP ヘッダーを「http://bogus.referer.ibm.com」に設定します。
アプリスキャンを初めて実行したときにこれにフラグを立て、urlreferer が提供されているかどうかを確認するコードを配置しました。アプリスキャンを再度実行したところ、再びフラグが立てられました。これを処理する方法がわかりません。
レポートを見ると、偽のリファラーに入れられ、サーバーが 302 ステータス、リダイレクトで応答し、サーバーが 202 で応答したログインのリクエストが送信されたことがわかります。Appscan の推論は次のように述べています。
同じ要求が異なるセッションで 2 回送信され、同じ応答が受信されました。これは、どのパラメーターも動的ではない (セッション ID は Cookie でのみ送信される) ため、アプリケーションがこの問題に対して脆弱であることを示しています。
しかし、反応はいつも同じではないでしょうか?チェックが 302 に続いて 202 で失敗した場合、ユーザーに関係なく、リダイレクトおよびログイン ページが表示されます。誰もこれを処理する方法を知っていますか? ユーザーのセッション ID をリダイレクト URL に入れて、appscan が異なるかどうかを確認できると思いますが、別の方法があるはずだと思いました。
これは .net 4 アプリケーションです。ユーザーは Session オブジェクトで追跡されます。それが重要な場合、フォーム認証は使用されませんでした。