

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

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

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

# 使用 CAPTCHA和 Challenge動作的最佳實務
<a name="waf-captcha-and-challenge-best-practices"></a>

遵循本節中的指引來規劃和實作 AWS WAF CAPTCHA 或挑戰。

**規劃 CAPTCHA 和挑戰實作**  
根據您的網站使用情況、您要保護之資料的敏感度，以及請求類型，決定放置 CAPTCHA 拼圖或無提示挑戰的位置。選取您將套用 CAPTCHA 的請求，以便您視需要呈現拼圖，但避免在沒有用的地方呈現它們，並可能降低使用者體驗。使用 Challenge動作來執行對最終使用者影響較小的無提示挑戰，但仍有助於驗證請求是否來自啟用 JavaScript 的瀏覽器。

CAPTCHA 拼圖和無提示挑戰只能在瀏覽器存取 HTTPS 端點時執行。瀏覽器用戶端必須在安全的內容中執行，才能取得字符。

**決定在用戶端上執行 CAPTCHA 拼圖和靜音挑戰的位置**  
識別您不想受到 CAPTCHA 影響的請求，例如 CSS 或映像的請求。僅在必要時使用 CAPTCHA。例如，如果您計劃在登入時進行 CAPTCHA 檢查，且使用者一律直接從登入另一個畫面取得，則可能不需要在第二個畫面中進行 CAPTCHA 檢查，而且可能會降低您的最終使用者體驗。

設定 Challenge和 CAPTCHA 使用 ，以便 AWS WAF 只會傳送 CAPTCHA 拼圖和靜音挑戰以回應`GET``text/html`請求。您無法執行拼圖或挑戰來回應`POST`請求、跨來源資源共享 (CORS) 預檢`OPTIONS`請求或任何其他非`GET`請求類型。其他請求類型的瀏覽器行為可能會有所不同，且可能無法正確處理間質。

用戶端可以接受 HTML，但仍無法處理 CAPTCHA 或挑戰間質。例如，具有小型 iFrame 的網頁上的小工具可能接受 HTML，但無法顯示 CAPTCHA 或處理它。避免為這些類型的請求放置規則動作，與不接受 HTML 的請求相同。

**使用 CAPTCHA或 Challenge來驗證先前的權杖取得**  
您只能在合法使用者應一律擁有有效權杖的位置，使用規則動作來驗證有效權杖是否存在。在這些情況下，請求是否可以處理間質並不重要。

例如，如果您實作 JavaScript 用戶端應用程式 CAPTCHA API，並在將第一個請求傳送到受保護的端點之前立即在用戶端上執行 CAPTCHA 拼圖，您的第一個請求應一律包含對挑戰和 CAPTCHA 有效的字符。如需 JavaScript 用戶端應用程式整合的資訊，請參閱 [AWS WAF JavaScript 整合](waf-javascript-api.md)。

在這種情況下，您可以在保護套件 (Web ACL) 中新增與此第一次呼叫相符的規則，並使用 Challenge或 CAPTCHA規則動作進行設定。當規則符合合法最終使用者和瀏覽器時，動作會找到有效的字符，因此不會封鎖請求或傳送挑戰或 CAPTCHA 拼圖以回應。如需規則動作如何運作的詳細資訊，請參閱 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)。

**使用 CAPTCHA和 保護您的敏感非 HTML 資料 Challenge**  
您可以使用 CAPTCHA 和 Challenge保護來保護敏感的非 HTML 資料，例如 APIs，方法如下。

1. 識別接受 HTML 回應的請求，以及在您敏感、非 HTML 資料請求附近執行的請求。

1. 撰寫符合 HTML 請求的 CAPTCHA或 Challenge規則，以及符合敏感資料請求的 或 規則。

1. 調校您的 CAPTCHA和 Challenge 抗擾性時間設定，以便對於一般使用者互動，用戶端從 HTML 請求取得的權杖可在其對敏感資料的請求中使用且未過期。如需調校資訊，請參閱 [在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。

當您的敏感資料請求符合 CAPTCHA或 Challenge規則時，如果用戶端仍具有先前拼圖或挑戰中的有效權杖，則不會將其封鎖。如果字符不可用或時間戳記已過期，存取敏感資料的請求將會失敗。如需規則動作如何運作的詳細資訊，請參閱 [CAPTCHA 和 Challenge動作行為](waf-captcha-and-challenge-actions.md)。

**使用 CAPTCHA 和 Challenge來調整現有的規則**  
檢閱現有的規則，查看您是否要更改或新增規則。以下是一些需要考慮的常見案例。
+ 如果您有封鎖流量的速率型規則，但速率限制相對較高，以避免封鎖合法使用者，請考慮在封鎖規則之後新增第二個速率型規則。為第二個規則提供比封鎖規則更低的限制，並將規則動作設定為 CAPTCHA或 Challenge。封鎖規則仍會封鎖速率太高的請求，而新規則會以更低的速率封鎖大多數自動化流量。如需速率型規則的相關資訊，請參閱 [在 中使用以速率為基礎的規則陳述式 AWS WAF](waf-rule-statement-type-rate-based.md)。
+ 如果您有封鎖請求的受管規則群組，您可以將部分或全部規則的行為從 切換Block到 CAPTCHA或 Challenge。若要這樣做，請在受管規則群組組態中覆寫規則動作設定。如需覆寫規則動作的詳細資訊，請參閱 [規則群組規則動作覆寫](web-acl-rule-group-override-options.md#web-acl-rule-group-override-options-rules)。

**在部署 CAPTCHA 之前測試 CAPTCHA 並挑戰實作**  
至於所有新功能，請遵循 中的指引[測試和調校您的 AWS WAF 保護](web-acl-testing.md)。

在測試期間，請檢閱您的字符時間戳記過期要求，並設定您的 Web ACL 和規則層級豁免時間組態，以便在控制網站存取和為客戶提供良好的體驗之間取得良好的平衡。如需相關資訊，請參閱[在 中設定時間戳記過期和字符豁免時間 AWS WAF](waf-tokens-immunity-times.md)。