階段作業內偵測的疑難排解

當階段作業內偵測失敗時,有許多可能的原因。

掃描可能偵測到有實例在階段作業外,無法順利驗證它已標示的階段作業內型樣。在這段時間內,掃描日誌會顯示多重登入要求,直到掃描最後停止,這時會出現下列日誌項目:「由於偵測在階段作業外,因此暫停掃描」。

發生這個情況的原因,有多種可能性:

  1. 伺服器停止回應:掃描有可能因為應用程式超載或暫時關閉,而無法適時取得應用程式的回應。如果要測試,請嘗試停用「階段作業內偵測」勾選框,然後繼續掃描。
  2. 在登入序列中,掃描不會自動偵測必要的階段作業 Cookie 或參數:掃描會自動嘗試偵測在登入序列中,其認為與階段作業狀態相關的 Cookie 或參數(也就是 "ASP.NET_SessionId"、"JSESSIONID")。這些會列在「登入階段作業 ID」清單中。如果有其他未偵測到的階段作業 ID,請將它們新增到「階段作業 ID」清單中,再嘗試繼續掃描。如果您無法確定,請先嘗試新增登入序列中所顯示的所有階段作業 ID,如果後來掃描可以保持在階段作業內,您便可以回頭移除部分 ID,直到將特定的 Cookie 或參數分離出來為止。如果要得知有待新增的階段作業 ID,請移至「登入階段作業 ID」清單,強調顯示每個 URL,按一下檢視 HTTP 要求按鈕,然後檢查 HTTP 標頭中的 Cookie 和參數。
  3. 當在階段作業外要求時,無法存取階段作業內頁面:因為在掃描全程中會定期輪詢階段作業內頁面,但不一定會依照記錄登入序列時的相同順序來造訪這個頁面。如果您懷疑就是這類型的配置造成掃描無法保持在階段作業內,請嘗試用下列方法來進行測試:利用您的瀏覽器來探索順序,複製掃描用來作為其階段作業內頁面的 URL,繼續進行簡單的應用程式探索,然後強迫瀏覽上述的頁面。如果您無法在回應中看到您先前標示的文字(例如,您被重新導向到自訂的錯誤頁面),請嘗試選取其他頁面作為階段作業內頁面,直到允許這類行為的頁面出現。
  4. 偵測到的階段作業中頁面是一項含有登入參數的 POST:如果掃描自動將某個頁面偵測為它的階段作業中頁面,而且您注意到它無法在掃描全程中保持在階段作業中,請強調顯示標示的頁面,然後按一下檢視 HTTP 要求按鈕來檢查它。如果頁面包含使用者名稱和密碼參數,請嘗試在清單中向下選取另一個頁面,在瀏覽器中標示它的型樣,然後繼續掃描。如果沒有其他頁面可供選取,請嘗試重新錄製登入序列,在探索中多併入一個額外頁面,然後將這個頁面標示為您的階段作業內頁面。
  5. 階段作業內型樣不符合實際的回應。比方說,您可能輸入 'logout' 作為型樣,但有人改變網站,現在的文字是 'log out'。請利用「HTTP 要求」特性來判斷預期的回應 'logout' 與實際的回應 'log out' 的差異。必要的話,請變更型樣,重新掃描。然後重新檢查「HTTP 要求」回應。