AWS WAF中如何配置安全域名、允许<a>标签以规避核心规则拦截?
解决AWS WAF Core Rule Set拦截标签的问题
针对你遇到的Core Rule Set触发XSS拦截的问题,有几种可行的解决方案,而且AWS托管规则组并非完全不可定制:
一、让特定域名/路径直接绕过拦截
可以通过规则优先级控制实现:
- 创建一条自定义规则,优先级设置为高于Core Rule Set(数值越小优先级越高)
- 规则条件设置为匹配你的目标域名(比如Host头等于
our.url)或特定请求路径(比如/page_id) - 规则动作设为
Allow
这样符合条件的请求会先被允许,不会进入后续Core Rule Set的检查流程。注意条件要精准,避免过度放宽范围。
二、允许标签这类特定内容
1. 调整托管规则的动作
找到Core Rule Set中的awswaf:managed:aws:core-rule-set:CrossSiteScripting_Body_RC_COUNT规则,将其动作从Block改为Count。这样该规则只会记录请求但不会拦截,同时你可以补充自定义XSS规则来适配业务需求(比如只拦截带有恶意属性的<a>标签)。
2. 给目标规则添加排除项
在Core Rule Set的配置界面中,找到上述XSS规则,添加规则排除:
- 选择排除的位置:比如请求体中的JSON字段
data - 这样该字段内的内容不会被该XSS规则检查,就能正常通过
<a></a>这类标签。
3. 自定义规则放行特定内容
创建优先级高于Core Rule Set的自定义规则,条件设置为:
- 请求路径匹配
/page_id - 请求体的
data字段包含<a></a>(或用正则匹配合法的标签格式) - 动作设为
Allow
这种方式适合精准放行特定场景的合法内容,同时保留其他场景的拦截能力。
内容的提问来源于stack exchange,提问作者rzlvmp
相关产品推荐
相关产品推荐

