1

基本的なパターンに従う ajax リクエストがいくつかあります。

function(visitorId, sessionId, ...parameters more specific to method call..)

訪問者とセッション ID は、サーバー側でランダムに生成されます。訪問者 ID とセッション ID は、ソフトウェアのライブ セッションで実際の訪問者を検証するために常に使用されます。署名付きの 1 つのメソッド:

function(visitorId, sessionId, issueId)

として表される現在の顧客の問題の状態 (オープン、クローズ、待機中など) を返しますint。今日、ある顧客から、この特定の方法がクロスサイト リクエスト フォージェリに対して脆弱であるというセキュリティ レポートが報告されました。

テスト結果は、同じリクエストが異なるセッションで 2 回送信され、同じレスポンスが受信されたため、脆弱性を示しているようです。これは、どのパラメーターも動的ではない (セッション ID は Cookie でのみ送信される) ため、アプリケーションが CSRF に対して脆弱であることを示しています。

注意すべき点がいくつかあります。

  1. これらのメソッドは、重要な場合、POST リクエストでのみ使用できます。

  2. ソフトウェアの「セッション」は、ブラウザや IIS のセッションに関連付けられていません。私たちのソフトウェアは Windows サービスであるため、IIS がダウンしたり、ブラウザが閉じたりする可能性があります。内部のセッション トラッカーがそのセッションを削除する時間を決定するまで、そのセッションを保持します。

3. Ajax 要求が WCF サービスに送信され、WCF サービスがその要求を Windows サービスに中継します。

私たちのメソッドの大部分は静的パラメーターのこのパターンに従いますが、一意のデータを返す傾向があるため、これには頭を悩ませています。このセキュリティ テストに合格する可能性のあるランダム データと一緒に状態を返すだけでよいのではないかと思いますが、それは正しくないようです。これにアプローチする最良の方法は何ですか?

4

1 に答える 1