CAPTCHA 驗證

基於 CAPTCHA 的登入增加了額外的安全層,以防止自動化機器人存取,但它們也為必須在掃描前進行驗證的 DAST 工具增加了複雜性。當登入流程包含基於圖片或文字的 CAPTCHA,或 reCAPTCHA 挑戰時,AppScan提供了在掃描期間可靠地記錄和重播這些流程的機制。

註:
CAPTCHA 挑戰僅用於登入目的。

如果您的應用程式的登入表單需要在提交前解決 CAPTCHA,請參閱此頁面。本頁說明了支援的 CAPTCHA 類型、設定要求、限制以及所需的疑難排解步驟,以幫助您的掃描順利進行而不中斷。雖然某些 CAPTCHA 挑戰(例如文字或簡單的圖片謎題)可以透過自動化或 AI 輔助技術來處理,但基礎架構層級的 CAPTCHA(例如 reCAPTCHA v2/v3 或基於行為的挑戰)通常需要特定的設定才能維持掃描的連續性。了解這些機制的運作方式對於在 DAST 掃描期間成功驗證和達成完整覆蓋至關重要。

註:
AppScan Standard 範本中使用啟用 CAPTCHA 的登入方式的範本不受 AppScan Enterprise 支援。

支援的 CAPTCHA 類型

AppScan支援下列 CAPTCHA 實作:

  • CAPTCHA v1(基於 AI 的影像辨識)

  • reCAPTCHA v2(基於挑戰:互動式核取方塊)

  • reCAPTCHA v3(基於行為:隱形評分)

CAPTCHA v1(基於 AI)

  • 概觀:CAPTCHA v1 是使用 AppScan' 基於 AI 的辨識引擎來解決的。
  • 配置:
    • 確保已配置 AI 提供者。否則,CAPTCHA 解決會在登入錄製期間失敗。
    • MFA 配置頁面上啟用 CAPTCHA。
  • 需要手動配置時:如果自動偵測失敗:

    • 手動指定影像元素 ID輸入欄位 ID,然後錄製登入。

    • 可選擇切換到更大或更進階的 AI 模型以提高準確度。

reCAPTCHA v2 和 v3(基於基礎架構)

  • 概觀:為使用 reCAPTCHA v2/v3 的應用程式自動化登入需要繞過挑戰。這是透過在 Google Cloud 中配置 IP 允許清單來完成的,以便 Google 將AppScan流量視為受信任的。
  • 配置需求:

    • 與網站擁有者確認 reCAPTCHA 金鑰有效且已針對正確的網域啟用。

    • 識別AppScan將使用的公用 IP 位址。

    • 當網站擁有者啟用 IP 檢查時,挑戰權杖會繫結到來源 IP 位址。如果掃描器的 IP 在過程中變更(例如,因為負載平衡或多節點掃描),驗證會失敗。若要解決此問題,請在提供者的主控台(例如 Google Cloud 主控台)中手動將掃描器的公用 IP 位址或子網路加入允許清單,以確保來源 IP 受到信任。

      • 無法使用本機或私人 IP 位址。
    • 對於 reCAPTCHA v2,請僅使用 AppScan 瀏覽器搭配手動錄製來開始登入錄製。
  • 限制:

    • reCAPTCHA v2

      • 不支援自動登入。

      • 無法與外部瀏覽器搭配使用。

疑難排解

註:
若要檢查是否AppScan偵測到 CAPTCHA 或是否正確填入,請將 SessionManagement:ShowActionBasedPlayerWindow(從 Tools> Options> Advanced)設定為「True」,以檢視錄製動作的重播並識別問題。
1. CAPTCHA 疑難排解
問題 可能的原因 建議的動作
CAPTCHA v1 在登入期間失敗 AppScan未將影像或輸入文字辨識為 CAPTCHA 元素。 識別 CAPTCHA 影像和文字的 HTTP 參數 ID,並手動新增。如需相關資訊,請參閱如何識別 CAPTCHA HTTP 參數

AI 模型無法解決複雜的影像

切換到更大或更進階的 AI 模型(例如 GPT-4 與迷你模型的比較)。預設模型可能無法處理困難的影像。

reCAPTCHA v2/v3 在登入錄製或重播期間失敗

reCAPTCHA 未完全起始設定或驗證。

重新錄製登入。起始設定延遲是常見的。
reCAPTCHA 驗證因允許清單問題而失敗
  1. 等待允許清單生效,然後重試。

  2. 驗證機器的公用 IP 是否與 Google Cloud 主控台中允許清單的 IP 相符。

未擷取到階段作業環境定義 重新錄製登入,並在登入後選取不同的頁面(例如首頁)。
登入流程中的計時延遲 增加基於動作的延遲(進階配置)。

重播期間的計時延遲

在 CAPTCHA 步驟之前插入手動等待動作。
頁面載入太慢,CAPTCHA 無法起始設定 在 CAPTCHA 互動之前新增較長的乙太搜索器延遲或明確等待(例如 10 秒)。

如何識別 CAPTCHA HTTP 參數

AppScan需要知道包含 CAPTCHA 的參數名稱,才能登入應用程式。通常會在驗證錄製的登入程序時識別此參數。如果未識別,或者您使用自動登入,則必須自行新增參數。

  1. 開啟瀏覽器,並移至應用程式的登入頁面。
  2. F12 開啟瀏覽器'的開發人員工具窗格(通常位於主瀏覽器窗格的右側或下方)。
  3. 按一下「Elements」索引標籤以檢視 HTML 程式碼。當您選取部分程式碼時,對應的元素會在主瀏覽器窗格中反白顯示。
  4. 找到 CAPTCHA 元素並識別其 id

    範例:

    <img id="captchaImage" src="./captcha?ts=1782734992413" alt="Captcha" width="180" height="56">
  5. id 參數的值(不含引號)即為您所需的 CAPTCHA HTTP 參數。

    範例:

    captchaImage