You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS WAF拦截特定URL?排查字符串匹配拦截失效问题

如何用AWS WAF有效拦截根路径请求?

我来帮你搞定这个问题——之前用字符串匹配没生效,大概率是没选对匹配字段或者匹配条件。AWS WAF里针对URI路径的匹配有更精准的姿势,下面一步步来配置,确保能精准拦截根路径https://xxx.domain.com/,同时放过带后续路径的合法请求:

核心配置步骤

  • 选对匹配字段:你要拦截的是请求的URI路径部分,所以在WAF规则里要选择UriPath(如果是CloudFront关联的WAF,字段名称是URI,本质一致)。这个字段只会提取请求路径,不会包含域名、查询参数,正好对应你要拦截的/。
  • 用精确匹配而非字符串包含:
    别用字符串包含匹配——因为所有合法路径都以/开头,包含匹配会误拦所有请求。直接选择**Exact match(精确匹配)**类型,匹配值填/,这样只会命中完全等于根路径的请求。
  • 创建拦截规则并添加到Web ACL:
    1. 进入AWS WAF控制台,新建一条Rule;
    2. 在Rule里添加Match statement,匹配字段选UriPath,匹配类型选Exact match,值填/;
    3. 把这条Rule的动作设置为Block;
    4. 将Rule添加到你的Web ACL中,确保它的优先级高于其他允许类规则(避免被覆盖)。

为什么之前的字符串匹配没生效?

大概率是这两个原因:

  • 你可能选了RequestUri字段:这个字段会包含查询参数,比如如果恶意请求带了/?test=1,RequestUri的值是/?test=1,字符串匹配/就不会命中;而UriPath只会提取/,不管查询参数,能精准命中。
  • 用了错误的匹配类型:比如选了Contains(包含),但所有路径都包含/,要么会误拦所有请求,要么你的规则逻辑写错了(比如试图排除其他路径,但优先级没搞对)。

验证技巧

  • 开启WAF的Sampled Requests功能,查看请求是否命中规则,或者为什么没命中,方便排查问题;
  • 直接访问根路径测试拦截效果,同时访问https://xxx.domain.com/something/something确认合法请求不受影响。

内容的提问来源于stack exchange,提问作者Pete Lunenfeld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:54:30