本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS WAF — 基于费率的规则
AWS 强烈建议在 5 分钟滑动窗口内收到的HTTP请求数量超过您定义的阈值时,使用中基于速率的规则自动屏蔽不良行为者的 IP 地址, AWS WAF 从而防止请求泛滥。违规的客户端 IP 地址将收到 403 禁止的响应(或配置的区块错误响应),并一直处于屏蔽状态,直到请求速率降至阈值以下。
建议对基于速率的规则进行分层,以提供增强的保护,这样您就可以:
-
基于速率的一揽子规则,可保护您的应用程序免受大规模HTTP洪水的侵害。
-
一个或多个基于费率的规则,用于保护比基于费率URIs的一揽子规则更严格的特定费率。
例如,您可以选择在 5 分钟内限制为 500 个请求的基于速率的一揽子规则(没有范围缩小语句),然后使用 scope-down 语句创建以下一个或多个限制低于 500(5 分钟内低至 100 个请求)的基于速率的规则:
-
使用诸如 “
if NOT uri_path contains '.'
” 之类的范围缩小语句保护您的网页,以便进一步保护对不带文件扩展名的资源请求。这还可以保护您的主页 (/
),这是一条经常被定位的URI路径。 -
使用范围缩小语句(例如 “”)保护动态端点
if method exactly matches 'post' (convert lowercase)
-
使用像 “” 这样的范围缩小来保护访问您的数据库或调用一次性密码 (OTP) 的繁重请求
if uri_path starts_with '/login' OR uri_path starts_with '/signup' OR uri_path starts_with '/forgotpassword'
“阻止” 模式下的基于速率是防范请求泛滥 defense-in-depth WAF配置的基石,也是批准 AWS Shield Advanced 成本保护请求的必要条件。我们将在以下各节中研究其他 defense-in-depth WAF配置。