セッション内検出のトラブルシューティング

セッション内検出が失敗した場合、発生理由にはいくつかの可能性が考えられます。

可能性として、スキャンがセッション無効を検出し、そのマークが付けられたセッション内パターンを正常に検証できないという場合があります。この間に、スキャン・ログは次のログ項目「Suspending scan due to out of session detection」でスキャンが最終的に停止するまで、複数のログイン要求を表示します。

これが発生する理由については、以下のいくつかの可能性があります。

  1. サーバーが応答を停止していた。アプリケーションが過負荷になっているか、または一時的にダウンしているため、スキャンがアプリケーションからの応答をタイミングよく入手できない可能性があります。テストするためには、「セッション内検出」チェック・ボックスを無効にして、スキャンを続行してください。
  2. 必須のセッション Cookie またはパラメーターが、ログイン手順のスキャンで自動的に検出されなかった。スキャンは自動的に、ログイン手順からセッション状態に関連していると認識される Cookie またはパラメーター (例えば "ASP.NET_SessionId" や "JSESSIONID") の検出を試行します。これらは「ログイン・セッション ID」リストにリストされます。検出されなかったセッション ID が他にもある場合は、それらを「セッション ID」リストに追加して、スキャンの続行を試行してください。追加すべきものが分からない場合は、まずログイン手順内に現れるものをすべて追加し、その後スキャンがセッション内の状態を維持できる場合は、特定の Cookie またはパラメーターが分離されて取り出されるまで、遡って一部の ID を除去することができます。追加すべきものを把握するために、「ログイン・セッション ID」リストに進み、各 URL を強調表示し、「HTTP 要求の表示」ボタンをクリックして、Cookie およびパラメーターについて HTTP ヘッダーを調べてください。
  3. 異なる手順で要求すると、セッション内ページにアクセスできない。スキャンではスキャン全体を通じて定期的にセッション内ページをポーリングしますが、その実行は、ログイン手順が記録されたときと必ずしも同じ順序でページにアクセスすることになるとは限りません。スキャンがセッション内の状態を維持できないのは、このタイプの構成に原因があると疑う場合、ブラウザーを使用して順序を調査し、スキャンがそのセッション内ページとして使用している URL をコピーし、アプリケーションの簡潔な探査を続行し、問題視しているページを強制的にブラウズすることで、テストを実施してください。以前にマークを付けた応答のテキストを表示できない場合は (例えば、カスタマイズされたエラー・ページにリダイレクトされる)、このタイプの動作が許可されるページが見つかるまで、他のページをセッション内ページとして選択してください。
  4. 検出されたセッション内ページがログイン・パラメーターを指定された POST である。スキャンによりページがそのセッション内ページとして自動的に検出され、それがスキャン全体を通じてセッション内の状態を維持できないことに気付いた場合は、マークが付けられたページを、強調表示し、「HTTP 要求の表示」ボタンをクリックして調べます。ページにユーザー名パラメーターおよびパスワード・パラメーターが含まれている場合は、リストのさらに下にある別のページを選択し、ブラウザーでそのパターンにマークを付けて、スキャンを続行します。選択するページがそれ以上ない場合は、ログイン手順を再記録し、調査対象に余分の 1 ページを含めて、そのページにセッション内ページとしてマークを付けます。
  5. セッション内パターンが実際の応答に一致しない。例えば、パターンとして 'logout' と入力したものの、他のユーザーがサイトを変更し、現在そのテキストは 'log out' であるという場合があります。HTTP 要求機能を使用して、予期される応答 'logout' と、実際の応答 'log out' との差異を判別してください。必要であればパターンを変更し、スキャンを再度実行してください。その後、HTTP 要求応答を再度確認してください。