Azure WAF排除规则:RequestArgNames与RequestArgValues的区别及需求咨询
Azure WAF:RequestArgNames与RequestArgValues差异及排除需求实现
一、RequestArgNames 和 RequestArgValues 的核心区别
RequestArgNames:专门匹配查询参数的名称(即参数key),比如请求里的text、import、todo这些参数名,用于检查参数名是否符合规则(比如是否包含特定字符串、是否匹配正则等)。RequestArgValues:专门匹配查询参数的值(即参数value),比如something-important、true、gimport这些参数对应的值,用于检查参数值是否符合规则。
举个直观例子:
- 用
RequestArgNames匹配import,只会命中请求里的import这个参数名; - 用
RequestArgValues匹配true,只会命中import=true里的true这个值。
文档描述看起来相近是因为都关联查询参数,但一个针对参数名、一个针对参数值,是完全不同的匹配维度。
二、实现「参数值含特定字符串则排除该值」的需求
你需要的是只要参数值包含import字符串,就排除对应的值,可以按以下步骤配置:
- 匹配变量选择
RequestArgValues(目标是检查参数值) - 匹配条件选「包含」;如果WAF没有直接的包含选项,就用正则表达式
.*import.*来匹配所有包含import的字符串 - 匹配值设置为
import(用正则的话就填.*import.*) - 规则动作为「排除」;自定义规则里配置排除该匹配项,或在管理规则里添加这个匹配条件作为例外
对应你给出的请求http://localhost:8080/?text=something-important&import=true&todo=gimport:
something-important包含import,会被匹配并排除;gimport包含import,会被匹配并排除;true不包含import,不会被处理。
内容的提问来源于stack exchange,提问作者aldisti
相关产品推荐
相关产品推荐

