

**推出 的新主控台體驗 AWS WAF**

您現在可以使用更新後的體驗，在主控台的任何位置存取 AWS WAF 功能。如需詳細資訊，請參閱[使用 主控台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# CAPTCHA 和 Challenge動作行為
<a name="waf-captcha-and-challenge-actions"></a>

本節說明 CAPTCHA和 Challenge動作的功能。

當 Web 請求符合具有 CAPTCHA或 Challenge動作之規則的檢查條件時， 會根據其權杖和豁免時間組態的狀態， AWS WAF 決定如何處理請求。 AWS WAF 也會考慮請求是否可以處理 CAPTCHA 拼圖或挑戰指令碼間質。指令碼設計成以 HTML 內容處理，而且只能由預期使用 HTML 內容的用戶端正確處理。

**注意**  
當您在其中一個規則中使用 CAPTCHA或 Challenge 規則動作，或做為規則群組中的規則動作覆寫時，需支付額外費用。如需詳細資訊，請參閱[AWS WAF 定價](https://aws.amazon.com/waf/pricing/)。

**動作如何處理 Web 請求**  
AWS WAF 會將 CAPTCHA或 Challenge動作套用至 Web 請求，如下所示：
+ **有效的字符** – AWS WAF 處理類似 Count動作。 AWS WAF 會套用您為規則動作設定的任何標籤和請求自訂，然後繼續使用保護套件 (Web ACL) 中的其餘規則來評估請求。
+ **缺少、無效或過期的權杖** – AWS WAF 停止請求的保護套件 (Web ACL) 評估，並阻止它前往其預期目的地。

  AWS WAF 會根據規則動作類型，產生傳回用戶端的回應：
  + **Challenge** – AWS WAF 在回應中包含下列項目：
    + 具有 `challenge` 值的標頭 `x-amzn-waf-action`。
**注意**  
對於在用戶端瀏覽器中執行的 Javascript 應用程式，此標頭僅適用於應用程式的網域。標頭不適用於跨網域擷取。如需詳細資訊，請參閱以下章節。
    + HTTP 狀態碼 `202 Request Accepted`。
    + 如果請求包含具有 `text/html` 值的 `Accept` 標頭，回應將包含 JavaScript 插入式頁面和挑戰指令碼。
  + **CAPTCHA** –在回應中 AWS WAF 包含下列項目：
    + 具有 `captcha` 值的標頭 `x-amzn-waf-action`。
**注意**  
對於在用戶端瀏覽器中執行的 Javascript 應用程式，此標頭僅適用於應用程式的網域。標頭不適用於跨網域擷取。如需詳細資訊，請參閱以下章節。
    + HTTP 狀態碼 `405 Method Not Allowed`。
    + 如果請求包含值為 的 `Accept` 標頭`text/html`，回應會包含 JavaScript 頁面與 CAPTCHA 指令碼的間質。

若要在保護套件 (Web ACL) 或規則層級設定權杖過期的時間，請參閱 [在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。

**在用戶端瀏覽器中執行的 JavaScript 應用程式無法使用標頭**  
當 AWS WAF 使用 CAPTCHA 或挑戰回應回應用戶端請求時，它不包含跨來源資源共用 (CORS) 標頭。CORS 標頭是一組存取控制標頭，可告知用戶端 Web 瀏覽器哪些網域、HTTP 方法和 HTTP 標頭可供 JavaScript 應用程式使用。如果沒有 CORS 標頭，在用戶端瀏覽器中執行的 JavaScript 應用程式不會獲得 HTTP 標頭的存取權，因此 無法讀取 CAPTCHA和 Challenge回應中提供的`x-amzn-waf-action`標頭。

**挑戰和 CAPTCHA 中介裝置的作用**  
當挑戰間質執行時，在用戶端成功回應之後，如果它還沒有權杖，則間質會為其初始化一個權杖。然後，它會使用挑戰求解時間戳記來更新權杖。

當 CAPTCHA 執行個體執行時，如果用戶端還沒有權杖，CAPTCHA 執行個體會先叫用挑戰指令碼來挑戰瀏覽器並初始化權杖。然後，間質會執行其 CAPTCHA 拼圖。當最終使用者成功完成拼圖時，間質會使用 CAPTCHA 求解時間戳記更新字符。

在這兩種情況下，在用戶端成功回應且指令碼更新字符之後，指令碼會使用更新的字符重新提交原始 Web 請求。

您可以設定 AWS WAF 如何處理字符。如需相關資訊，請參閱[用於 AWS WAF 智慧型威脅緩解的字符](waf-tokens.md)。