ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 简介 该规则就是对返回的内容进行替换的一个功能,其作用和`http_sub_module` 、 `replace-filter-nginx-module`功能类似,不过这里是纯`lua`实现的,该功能对性能的损耗还是比较多的,谨慎使用就可以。 ## 入口 ![](https://img.kancloud.cn/ce/6d/ce6d5683cfd647e171150fcd195bc741_934x920.png) ## 主界面 先看一下主界面吧 ![](https://img.kancloud.cn/21/76/2176a9a4c8cc666c5281eabeacbb5fe0_984x437.png) 这里可以看到操作中有 上移、下移,等这样条件规则组顺序的功能,这就表示这里的规则,是有顺序控制的,越在上面,越早执行!!! 调整好顺序后,一定要 `应用` ,然后在 `保存` * 规则开关 控制该模块`replace_Mod`全局开关是否启用,如果关闭,那么该页面中配置的所有频率控制规则都不会生效。 ## 添加 添加一条内容替换规则,先看一下添加规则的界面 ![](https://img.kancloud.cn/15/54/1554cc83455520b4f972b04a59c83fb5_743x450.png) * des:对该条规则的人为描述,方便规则的管理和认知 * state:控制该条规则是否开启 * hostname、uri 第一个参数:匹配的内容 第二个参数:匹配的方法(匹配符) 【参考匹配方式】 第三个参数:取反标记 * replace_list:内容替换相关配置(该值要求是一个数组) 子规则 第一个参数:查找的字符串 子规则 第二个参数:匹配的方法(等于、正则) 子规则 第三个参数:替换后的字符串 调用插件插件特殊: 子规则 第一个参数:插件的函数名称 子规则 第二个参数:func(值固定) 子规则 第三个参数:传递给插件使用的参数(是一个table) ## 删除 删除对应规则模块中对应规则id ## 编辑 编辑对应规则模块中对应规则id, 具体看配置参考 添加规则 的说明 ## 保存 保存对应规则组的配置从内存中保存到本地的json配置文件中,一般规则有变动后,需要保存,否则重启后规则将会丢失(Slave会自动保存到本地磁盘) ## 实例讲解 先看一个配置的示例 ![](https://img.kancloud.cn/d2/03/d2036e94835c32fefd9351796c853354_743x522.png) ``` { "des": "1-simple", "state": "on", "uri": [ "^/api/ip_dict$", "jio" ], "hostname": [ "localhost5460", "" ], "replace_list": [ [ "deny", "", "denyFUCK" ], [ "allow", "", "allowPASS" ], [ "lzcaptcha\\?key='\\s*\\+ key", "jio", "lzcaptcha?keY='+key+'&keytoken=@token@'" ] ] } ``` * host 匹配域名等于`localhost5460` `localhost5460` 这个表示的是WAF服务器的web管理后台的服务 * uri 匹配`uri`正则匹配 `^/api/ip_dict$` * 替换规则 1. 返回内容中 deny 字符串替换为 denyFUCK 2. 返回内容中 allow 字符串替换为 allowPASS 3. 返回内容中 正则匹配 `lzcaptcha\?key='\s*\+ key` 把其内容替换为 `lzcaptcha?keY='+key+'&keytoken=@token@` 其中这里的@token@会被WAF动态的替换为一个由WAF生成的随机字符串(方便后面进行验证该字符串是否由WAF生成) 这个例子不太容易理解,后面我会写一个简单的html,这样就可以直观的看到其效果