![「壹盾安全」独家揭秘WAF编解码的妙用!让你的网站安全无忧!插图 「壹盾安全」独家揭秘WAF编解码的妙用!让你的网站安全无忧!插图](https://blog.eswlnk.com/wp-content/uploads/wpcy/c9f2490cd73fe7dc1bebf6ce7563fff7.jpg)
编解码对比规则示例
示例1:判断参数值长度大于100
要判断某个参数值的长度是否大于100,可以使用编解码中的”计算长度”规则。
- 参数:单个URL参数值-[arg]
- 参数名:name
- 编解码:计算长度
- 操作符:数值大于
- 对比值:100
这样当用户输入的name参数长度大于100时,就会匹配到此规则。
示例2:判断Base64内容是否包含某个字符串
当用户输入Base64内容时,无法直接进行对比。因此可以使用编解码中的”BASE64Decode”规则。
- 参数:单个URL参数值-[arg]
- 参数名:name
- 编解码:BASE64Decode
- 操作符:包含字符串
- 对比值:HelloWorld
这样当用户输入类似于”SGVsbG9Xb3JsZA==”的内容时,就能匹配到该规则。
示例3:判断经过转义的URL是否匹配某个规则
如果用户输入的内容是经过转义的,可能会影响我们的判断。例如:
id%3D%3B+DELETE+FROM+abc
针对这种情况,可以使用编解码中的URLDecode来解码输入值后再进行对比。
- 参数:所有URL参数组合-[args]
- 参数名:name
- 编解码:URLDecode
- 操作符:正则匹配
- 对比值:DELETE FROM
经过解码后,上面的一段内容会被解码成:
id=; DELETE FROM abc
这样就能与我们写的正则表达式进行匹配。
规则示例:只允许特定来源网站访问
在这个示例中,有两个规则:一个是允许所有来源为空的访问(即用户直接访问网站),另一个是允许特定域名的来源访问。因此,我们需要添加以下规则来阻止特定条件的访问:
- 来源不为空
- 来源不是我们允许的域名
在规则集中添加的规则如下:
规则1
- 参数:请求来源URL – [referer]
- 操作符:正则不匹配
- 对比值:a.com|b.c.d.com (这里写上你允许的域名列表,要符合基本的正则表达式语法)
规则2
- 参数:请求来源URL – [referer]
- 操作符:字符串不等于
- 对比值:不填留空
规则之间的关系:和(And) 执行动作:阻止(BLOCK)
📮评论