openstar的使用是非常灵活的,不仅仅是单一规则的匹配,而支持多规则组方式,AND 以及 OR 方式进行规则的连接,规则匹配的位置是`request`请求的任意位置
具体规则可以匹配的位置:
```
local scheme # 协议
local uri # uri (浏览器地址 ? 前的字符串)
local remoteIp # nginx 取的直连 IP (使用了realip模块后,则是从header头取的)
local ip # 通过 openstar 提供的 从header头取的ip地址(目前使用 realip模块就够用了)
local serverIp # 服务器ip
local http_host # header 头里的 HOST
local server_name # nginx 配置文件 server 字段
local hostname # 域名(准确的解析域名)
local method # 请求的方法
local referer # 请求的 referer
local useragent # 请求的 useragent
local cookie # 请求的 cookie
local request_uri # 完整的 请求地址 (uri+query_string)
local query_string # GET 请求参数(浏览器地址 ? 后面的内容)
local http_content_type # 请求头 类型字段
local headers # table 类型的 header(包括所有header头)
local args # table 类型的 GET 请求参数
local args_data # 所有GET请求的 value 的连接字符串,连接符 ,
local posts # http_content_type 为 x-www-form-urlencoded POST的请求参数的table类型
local posts_data # posts 该table中所有 value 的连接字符串,连接符 ,
local posts_all # 完整的请求body体内容
local post_form # POST 表单时,解析后的table
```
当然在高级规则中支持使用插件,就是说过滤代码可以自己使用`lua`进行编写,可以实现任意你想要的过滤功能,且性能上比 loadstring ,dofile 都要好,代码上没有什么大的问题,那么他的性能就不会很差
一定要看一下WAF整体的防护流程图,规则之间的优先级就是根据这个流程图而确定的,当规则配置没有达到想要的效果,一定要冷静,对比流程图看看是否是遗漏的。
![](https://img.kancloud.cn/07/ec/07ece639e3510fab3fe9aa9dcf09840b_1664x3159.png)
- kcon 兵器谱
- 演示 1
- 演示 2
- 演示 3
- 演示 4
- 演示 5
- 前言
- 安装
- 更新
- 登录后台
- 授权认证
- 集群配置
- 7层防护 -- 最佳实践
- 匹配位置说明
- 匹配方式说明
- 规则匹配详解
- 全局 - CDN规则
- 添加header头配置
- 限速limit配置
- 缓存proxy_cache配置
- 清除缓存
- 全局 - 获取真实IP配置
- 全局 - IP黑白名单
- 全局 - 域名方法配置(白名单)
- 全局 - 跳转规则配置
- 全局 - 高级规则配置
- 全局 - 普通规则配置
- 全局 - 频率规则配置
- 全局 - 内容替换规则
- 内容替换规则(插件使用)
- 全局 - 拦截信息配置
- 全局 - LOG规则配置
- 平台配置
- 基本配置
- 高级配置
- 配置文件管理
- 4 层代理
- 转发配置
- 插件管理
- 防护配置
- 网站管理
- 证书管理
- 域名管理
- 网站规则
- 插件管理
- 插件操作 --- 基本使用
- 插件操作 --- 手机号脱敏插件
- 归档
- 更新日志
- 视频教程目录