在 Amazon WAF 中指定令牌域和域列表
本节介绍了如何配置 Amazon WAF 在令牌中使用的域和在令牌中接受的域。
在 Amazon WAF 为客户端创建令牌时,它会使用令牌域对其进行配置。在 Amazon WAF 检查 Web 请求中的令牌时,如果该令牌的域与任何被认为对 Web ACL 有效的域都不匹配,则会将该令牌视为无效因而拒绝。
默认情况下,Amazon WAF 仅接受其域设置与 Web ACL 所关联的资源的主机域完全匹配的令牌。这是 Web 请求中的 Host
标头的值。在浏览器中,您可以在 JavaScript window.location.hostname
属性和用户在地址栏中看到的地址中找到该域名。
您还可以在您的 Web ACL 配置中指定可接受的令牌域,如下一节所述。在这种情况下,Amazon WAF 既接受与主机标头完全匹配的域,也接受与令牌域列表中的域匹配的域。
您可以为 Amazon WAF 指定令牌域,以便在设置域和评估 Web ACL 中的令牌时使用。您指定的域名不能是公共后缀,例如 gov.au
。对于您无法使用的域名,请参阅公共后缀列表
Amazon WAF Web ACL 令牌域列表配置
您可以将 Web ACL 配置为在多个受保护资源之间共享令牌,方法是提供包含您希望 Amazon WAF 接受的其他域的令牌域列表。具有令牌域列表时,Amazon WAF 仍接受资源的主机域。此外,它接受令牌域列表中的所有域,包括其前缀子域。
例如,令牌域列表 example.com
中的域名规范与 example.com
(来自 http://example.com/
)、api.example.com
(来自 http://api.example.com/
)和 www.example.com
(来自 http://www.example.com/
)匹配。它与 example.api.com
(来自 http://example.api.com/
)或 apiexample.com
(来自 http://apiexample.com/
)不匹配。
创建或编辑令牌域列表时,可以在 Web ACL 中对其进行配置。有关管理 Web ACL 的一般信息,请参阅 在 Amazon WAF 中查看 Web 流量指标。
Amazon WAF 令牌域设置
Amazon WAF 应质询脚本的请求创建令牌,这些脚本由应用程序集成软件开发工具包以及 Challenge 和 CAPTCHA 规则操作运行。
在令牌中 Amazon WAF 设置的域名由请求令牌的质询脚本的类型以及您提供的任何其他令牌域配置决定。Amazon WAF 将令牌中的域设置为它在配置中可以找到的最短、最通用的设置。
-
JavaScript 软件开发工具包 – 您可以使用令牌域规范配置 JavaScript 软件开发工具包,该规范可以包含一个或多个域。根据受保护的主机域和 Web ACL 的令牌域列表,您配置的域必须是 Amazon WAF 可以接受的域。
当 Amazon WAF 向客户端发出令牌时,它会将令牌域设置为与主机域匹配的令牌域,并且是主机域和您配置列表中的域中最短的令牌域。例如,如果主机域是
api.example.com
,而令牌域列表有example.com
,则 Amazon WAF 在令牌中使用example.com
,因为它与主机域匹配并且更短。如果您未在 JavaScript API 配置中提供令牌域列表,则 Amazon WAF 将该域名设置为受保护资源的主机域。有关更多信息,请参阅 提供用于令牌的域名。
-
移动软件开发工具包 – 在应用程序代码中,必须使用令牌域属性配置移动软件开发工具包。根据受保护的主机域和 Web ACL 的令牌域列表,此属性必须是 Amazon WAF 可以接受的域。
当 Amazon WAF 为客户端发放令牌时,它会使用此属性作为令牌域。Amazon WAF 在为移动软件开发工具包客户端发放的令牌中不使用主机域。
有关更多信息,请参阅 Amazon WAF 移动软件开发工具包规范 的
WAFConfiguration
domainName
设置。 -
Challenge 操作 – 如果您在 Web ACL 中指定令牌域列表,则 Amazon WAF 将令牌域设置为与主机域匹配且最短的令牌域,即主机域和列表中的域中最短的令牌域。例如,如果主机域是
api.example.com
,而令牌域列表有example.com
,则 Amazon WAF 在令牌中使用example.com
,因为它与主机域匹配并且更短。如果您未在 Web ACL 中提供令牌域列表,则 Amazon WAF 将该域设置为受保护资源的主机域。