CAPTCHA 驗證
基於 CAPTCHA 的登入增加了額外的安全層,以防止自動化機器人存取,但它們也為必須在掃描前進行驗證的 DAST 工具增加了複雜性。當登入流程包含基於圖片或文字的 CAPTCHA,或 reCAPTCHA 挑戰時,AppScan提供了在掃描期間可靠地記錄和重播這些流程的機制。
如果您的應用程式的登入表單需要在提交前解決 CAPTCHA,請參閱此頁面。本頁說明了支援的 CAPTCHA 類型、設定要求、限制以及所需的疑難排解步驟,以幫助您的掃描順利進行而不中斷。雖然某些 CAPTCHA 挑戰(例如文字或簡單的圖片謎題)可以透過自動化或 AI 輔助技術來處理,但基礎架構層級的 CAPTCHA(例如 reCAPTCHA v2/v3 或基於行為的挑戰)通常需要特定的設定才能維持掃描的連續性。了解這些機制的運作方式對於在 DAST 掃描期間成功驗證和達成完整覆蓋至關重要。
支援的 CAPTCHA 類型
AppScan支援下列 CAPTCHA 實作:
-
CAPTCHA v1(基於 AI 的影像辨識)
-
reCAPTCHA v2(基於挑戰:互動式核取方塊)
-
reCAPTCHA v3(基於行為:隱形評分)
CAPTCHA v1(基於 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
-
不支援自動登入。
-
無法與外部瀏覽器搭配使用。
-
-
疑難排解
| 問題 | 可能的原因 | 建議的動作 |
|---|---|---|
| CAPTCHA v1 在登入期間失敗 | AppScan未將影像或輸入文字辨識為 CAPTCHA 元素。 | 識別 CAPTCHA 影像和文字的 HTTP 參數 ID,並手動新增。如需相關資訊,請參閱如何識別 CAPTCHA HTTP 參數。 |
|
AI 模型無法解決複雜的影像 |
切換到更大或更進階的 AI 模型(例如 GPT-4 與迷你模型的比較)。預設模型可能無法處理困難的影像。 |
|
| reCAPTCHA v2/v3 在登入錄製或重播期間失敗 |
reCAPTCHA 未完全起始設定或驗證。 |
重新錄製登入。起始設定延遲是常見的。 |
| reCAPTCHA 驗證因允許清單問題而失敗 |
|
|
| 未擷取到階段作業環境定義 | 重新錄製登入,並在登入後選取不同的頁面(例如首頁)。 | |
| 登入流程中的計時延遲 | 增加基於動作的延遲(進階配置)。 | |
|
重播期間的計時延遲 |
在 CAPTCHA 步驟之前插入手動等待動作。 | |
| 頁面載入太慢,CAPTCHA 無法起始設定 | 在 CAPTCHA 互動之前新增較長的乙太搜索器延遲或明確等待(例如 10 秒)。 |
如何識別 CAPTCHA HTTP 參數
AppScan需要知道包含 CAPTCHA 的參數名稱,才能登入應用程式。通常會在驗證錄製的登入程序時識別此參數。如果未識別,或者您使用自動登入,則必須自行新增參數。
- 開啟瀏覽器,並移至應用程式的登入頁面。
- 按 F12 開啟瀏覽器'的開發人員工具窗格(通常位於主瀏覽器窗格的右側或下方)。
- 按一下「Elements」索引標籤以檢視 HTML 程式碼。當您選取部分程式碼時,對應的元素會在主瀏覽器窗格中反白顯示。
- 找到 CAPTCHA 元素並識別其
id。範例:
<img id="captchaImage" src="./captcha?ts=1782734992413" alt="Captcha" width="180" height="56"> - id 參數的值(不含引號)即為您所需的 CAPTCHA HTTP 參數。
範例:
captchaImage