

**引入全新的主机体验 AWS WAF**

现在，您可以使用更新的体验访问控制台中任意位置的 AWS WAF 功能。有关更多详细信息，请参阅[使用控制台](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用智能威胁 JavaScript API
<a name="waf-js-challenge-api"></a>

本节提供在客户端应用程序中使用智能威胁 JavaScript API 的说明。

智能威胁 APIs 提供了针对用户的浏览器运行静默挑战的操作，以及处理提供成功挑战和验证码响应证明的 AWS WAF 令牌的操作。

首先在测试环境中实施 JavaScript 集成，然后在生产环境中实现集成。有关其他编码指导，请参阅以下各节。

 

**使用智能威胁 APIs**

1. **安装 APIs** 

   如果您使用验证码 API，可以跳过此步骤。当你安装 CAPTCHA API 时，脚本会自动安装智能威胁。 APIs

   1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/wafv2/homev](https://console.aws.amazon.com/wafv2/homev2) 2 上打开主 AWS WAF 机。

   1. 在导航窗格中，选择 **应用程序集成**。在**应用程序集成**页面上，您可以看到选项卡式选项。

   1. 选择**智能威胁集成**

   1. 在该选项卡中，选择要与之集成的保护包（web ACL）。保护包 (Web ACL) 列表仅包括使用`AWSManagedRulesACFPRuleSet`托管规则组、托管规则组或`AWSManagedRulesATPRuleSet`托管规则组的目标保护级别的保护包 (Web ACLs)。`AWSManagedRulesBotControlRuleSet`

   1. 打开 S **JavaScript DK** 窗格，复制脚本标签以便在集成中使用。

   1. 在应用程序页面代码的 `<head>` 部分中，插入您为保护包（web ACL）复制的脚本标记。此包含会使您的客户端应用程序在页面加载时自动在后台检索令牌。

      ```
      <head>
          <script type="text/javascript" src="{{protection pack (web ACL) integration URL}}/challenge.js” defer></script>
      <head>
      ```

      此 `<script>` 列表使用 `defer` 属性进行配置，但如果您想让页面有不同的行为，则可以将设置更改为 `async`。

1. **（可选）为客户端的令牌添加域配置**-默认情况下，在 AWS WAF 创建令牌时，它使用与保护包（Web ACL）关联的资源的主机域。要为提供其他域 JavaScript APIs，请按照中的指南进行操作[提供用于令牌的域名](waf-js-challenge-api-set-token-domain.md)。

1. **对智能威胁集成进行编码**：编写代码以确保在客户端向受保护的端点发送请求之前完成令牌检索。如果您已经在使用 `fetch` API 进行调用，则可以替换 AWS WAF 集成 `fetch` 封装器。如果您不使用 `fetch` API，则可以改用 AWS WAF 集成`getToken`操作。有关编码指导，请参阅以下部分。

1. **在保护包（web ACL）中添加令牌验证**：在保护包（web ACL）中添加至少一条规则，用于检查客户端发送的 web 请求中是否存在有效的质询令牌。您可以使用规则组来检查和监控质询令牌，例如机器人控制功能托管规则组的目标级别，也可以使用 Challenge 规则操作进行检查，如 [CAPTCHA然后Challenge在 AWS WAF](waf-captcha-and-challenge.md) 中所述。

   新增的保护包（web ACL）可验证对受保护端点的请求是否包含您在客户端集成中获取的令牌。包含有效、未过期令牌的请求将通过 Challenge 检查，并且不会向您的客户发送另一个静默质询。

1. **（可选）阻止缺少令牌的请求** — 如果您将 APIs 与 ACFP 托管规则组、ATP 托管规则组或 Bot Control 规则组的目标规则一起使用，则这些规则不会阻止缺少令牌的请求。要阻止缺少令牌的请求，请按照 [阻止没有有效 AWS WAF 令牌的请求](waf-tokens-block-missing-tokens.md) 中的指导进行操作。

**Topics**
+ [智能威胁 API 规范](waf-js-challenge-api-specification.md)
+ [如何使用集成 `fetch` 包装程序](waf-js-challenge-api-fetch-wrapper.md)
+ [如何使用集成 `getToken`](waf-js-challenge-api-get-token.md)