推出 的新主控台體驗 AWS WAF
您現在可以使用更新後的體驗,在主控台的任何位置存取 AWS WAF 功能。如需詳細資訊,請參閱使用更新的主控台體驗。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CAPTCHA 和 Challenge動作行為
本節說明 CAPTCHA和 Challenge動作的功能。
當 Web 請求符合具有 CAPTCHA或 Challenge動作之規則的檢查條件時, 會根據其權杖和豁免時間組態的狀態, AWS WAF 決定如何處理請求。 AWS WAF 也會考慮請求是否可以處理 CAPTCHA 拼圖或挑戰指令碼間質。指令碼設計成以 HTML 內容處理,而且只能由預期使用 HTML 內容的用戶端正確處理。
注意
當您在其中一個規則中使用 CAPTCHA或 Challenge規則動作,或做為規則群組中的規則動作覆寫時,需支付額外費用。如需詳細資訊,請參閱AWS WAF 定價
動作如何處理 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。
在用戶端瀏覽器中執行的 JavaScript 應用程式無法使用標頭
當 使用 CAPTCHA 或挑戰 AWS WAF 回應回應用戶端請求時,它不包含跨來源資源共用 (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 智慧型威脅緩解的字符。