使用智慧型威脅 JavaScript API - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

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

使用智慧型威脅 JavaScript API

智慧型威脅 API 可提供針對使用者瀏覽器執行無訊息挑戰的作業,以及處理可提供成功挑戰證明和 CAPTCHA 回應的AWS WAF權杖。

先在測試環境中實作 JavaScript 整合,然後在生產環境中實作整合。如需其他程式碼撰寫指引,請參閱下列各節。

使用智慧型威脅 API
  1. 安裝 API

    如果您使用驗證碼 API,則可以跳過此步驟。當您安裝驗證碼 API 時,指令碼會自動安裝智慧型威脅 API。

    1. 請登入AWS Management Console並開啟AWS WAF主控台,網址為 https://console.aws.amazon.com/wafv2/

    2. 在導覽窗格中,選擇 Application integration (應用程式整合)。在「應用程式整合」頁面上,您可以看到標籤式選項。

    3. 選擇智慧型威脅整合

    4. 在「」頁籤中,選取您要整合的 Web ACL。Web ACL 清單僅包含使用AWSManagedRulesACFPRuleSet受管規則群組、受管規則群組或AWSManagedRulesATPRuleSet受管規則群組的目標保護層級的 AWSManagedRulesBotControlRuleSet Web ACL。

    5. 開啟 JavaScript SDK 窗格,然後複製要在整合中使用的指令碼標記。

    6. 在應用程式頁面程式碼的<head>區段中,插入您為 Web ACL 複製的指令碼標記。此包含會導致您的客戶端應用程序在頁面加載時在後台自動檢索令牌。

      <head> <script type="text/javascript" src="Web ACL integration URL/challenge.js” defer></script> <head>

      <script>清單已使用defer屬性進行設定,但async如果您希望頁面採用不同的行為,則可以將設定變更為。

  2. (選擇性) 新增用戶端權杖的網域組態 — 依預設,AWS WAF建立權杖時,它會使用與 Web ACL 相關聯之資源的主機網域。若要為 JavaScript API 提供其他網域,請遵循的指引提供在權杖中使用的網域

  3. 編寫智慧型威脅整合的程式碼 — 撰寫程式碼,以確保在用戶端將其請求傳送到受保護的端點之前完成 Token 擷取。如果您已經使用 fetch API 進行調用,則可以替換AWS WAF集成fetch包裝器。如果您不使用 fetch API,則可以改用AWS WAF整合getToken作業。有關編碼指導,請參閱以下各節。

  4. 在 Web ACL 中新增權杖驗證 — 在 Web ACL 中新增至少一個規則,以檢查用戶端傳送的 Web 要求中是否有效的挑戰權杖。您可以使用規則群組來檢查和監控挑戰權杖 (例如 Bot Control 受管理規則群組的目標層級),也可以使用Challenge規則動作來檢查,如中所述CAPTCHA並Challenge在 AWS WAF

    Web ACL 新增功能會驗證對受保護端點的要求是否包含您在用戶端整合中取得的權杖。包含有效、未過期權杖的要求會通過Challenge檢查,並且不會向您的用戶端傳送另一個無訊息的挑戰。

  5. (選擇性) 封鎖遺失 Token 的要求 — 如果您將 API 與 ACFP 管理規則群組、ATP 管理規則群組或機器人控制規則群組的目標規則搭配使用,則這些規則不會封鎖遺失 Token 的要求。要阻止缺少令牌的請求,請按照中的指導進行操作阻止沒有有效令牌的請求