通用格式
SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS]
阶段phase
(1)request headers
(2)request body
(3)response headers
(4)response body
(5) logging
一、变量variable
绿色:请求变量 蓝色:server变量 紫色:响应变量 红色:请求体解析变量 黑色:时间变量 橙色:实体变量
| ModSecurity |
| ARGS 请求参数,类型read-only collection |
| ARGS_COMBINED_SIZE 请求参数的总大小 |
| ARGS_NAMES 请求参数的名字, 类型read-only collection |
| ARGS_GET 查询字符串参数,类型read-only collection |
| ARGS_GET_NAMES 查询字符串参数,类型read-only collection |
| ARGS_POST 请求体参数,类型read-only collection |
| ARGS_POST_NAMES 请求体参数的名字,类型read-only collection |
| FILES 上传文件域,类型read-only collection |
| FILES_COMBINED_SIZE 上传文件大小 |
| FILES_NAMES 上传文件表单文件域参数的名字,类型read-only collection |
| FILES_SIZES 上传文件的大小,类型read-only collection |
| FILES_TMPNAMES 文件临时名字,类型read-only collection |
| PATH_INFO URI path |
| QUERY_STRING 查询字符串 |
| REQUESET_BASENAME URI basename,同时支持/与\这两种文件分隔符 |
| REQUEST_BODY 请求体,默认处理application/x-www-form-urlencoded 请求 |
| REQUEST_COOKIES cookie参数 |
| REQUEST_COOKIES_NAMES cookie参数的名字,类型read-only collection |
| REQUEST_FILENAME URI filename/path |
| REQUEST_HEADERS 请求头,类型read-only collection |
| REQUEST_HEADERS_NAMES 请求头参数的名字, 类型read-only collection |
| REQUEST_LINE 请求行 |
| REQUEST_METHOD 请求方法 |
| REQUEST_PROTOCOL 请求协议 |
| REQUEST_URI 请求URI,但不包括hostname |
| REQUEST_URI_RAW 请求URI,包括hostname |
| AUTH_TYPE 认证类型,代理模式下非本地认证,需要指定Authorization头 |
| REMOTE_ADDR 远程地址, 访问者ip |
| REMOTE_HOST 远程host,访问者hostname,当HostnameLookUps开启时,为dns解析的域名,否则为ip地址 |
| REMOTE_PORT 远程端口,访问者端口 |
| REMOTE_USER 访问者用户名 |
| SERVER_ADDR 服务端地址 |
| SERVER_NAME 服务端hostname,取值Host请求头 |
| SERVER_PORT 服务端端口 |
| SCRIPT_BASENAME 脚本basename, 代理模式不可用 |
| SCRIPT_FILENAME 脚本 filename,代理模式不可用 |
| SCRIPT_GID 脚本group ID,代理模式不可用 |
| SCRIPT_GROUPNAME 脚本 group name,代理模式不可用 |
| SCRIPT_MODE 脚本权限 ,代理模式不可用 1 表示可执行
2 表示可写
4 表示可读
7 表示可写可读可执行
|
| SCRIPT_UID 脚本 user ID,代理模式不可用 |
| SCRIPT_USERNAME 脚本 user name,代理模式不可用 |
| RESPONSE_BODY 响应体 |
| RESPONSE_CONTENT_LENGTH 响应实体长度,单位bytes |
| RESPONSE_CONTENT_TYPE 响应实体类型,仅仅在phase3可用 |
| RESPONSE_HEADERS 响应头,类型read-only collection 在内嵌模式中,像那种会优先将数据发送给客户端的响应头是不可获得的,例如Server,Date,Connection,Content-Type
在代理模式中,阶段5可用
|
| RESPONSE_HEADERS_NAMES 响应头参数的名字,类型read-only collection 在内嵌模式中,像那种会优先将数据发送给客户端的响应头是不可获得的,例如Server,Date,Connection,Content-Type
在代理模式中,阶段5可用
|
| RESPONSE_PROTOCOL 响应协议 |
| RESPONSE_STATUS 响应码,仅代理模式可用 |
| TX 事件内变量, 类型read/write collection 当使用operator @rx或@pm时,TX:0表示capture action捕获的变量 TX:1-TX:9:表示capture action捕获的子串 |
| RULE rule元数据, 类型read/write collection, 用于设置Rule对象的属性:id,rev,severity,logdata, msg |
| SESSION session数据,类型read/write collection 仅当setsid action执行后使用, session对象的属性,SCORE得分, BLOCKED是否阻塞 |
| GEO geo信息,类型read-only collection |
| ENV 环境变量,类型read-only collection,但可以使用setvar来修改变量的值 |
| GLOBAL 全局变量,类型read/write collection |
| IP 存储的ip数据 ,类型read/write collection |
| USER user数据,类型read/write collection |
| XML xml dom相关的,类型read-only collection |
| HIGHEST_SEVERITY 严重级别,值越小级别越高,255表示未设置严重级别 |
| MATCHED_VAR 最近一次匹配的变量 |
| MATCHED_VAR_NAME 最近一次匹配的变量的名字 |
| MODSEC_BUILD modsecurity版本号 |
| SESSION_ID sessionID |
| USERID user ID |
| WEBAPPID web app ID |
| WEBSERVER_ERROR_LOG server产生的错误信息 |
| TIME HH:mm:ss |
| TIME_DAY 1-31 |
| TIME_EPOCH |
| TIME_HOUR 0-23 |
| TIME_MIN 0-59 |
| TIME_MON 0-11 |
| TIME_SEC 0-59 |
| TIME_WDAY 0-6 |
| TIME_YEAR |
| DURATION 时间花费,milliseconds |
| MULTIPART_BOUNDARY_QUOTED multipart 解析错误:boudnary中有引号 |
| MULTIPART_BOUNDARY_WHITESPACE multipart 解析错误:boudnary中有空格 |
| MULTIPART_CRLF_LF_LINES multipart 解析错误:混合使用\r\n 与\n作为分界线, 当允许使用混合粉各符时设置为1 |
| MULTIPART_DATA_BEFORE multipart 解析错误:第一个boudnary前有数据 |
| MULTIPART_DATA_AFTER multipart 解析错误:最后一个boudnary后有数据 |
| MUTLIPART_HEADER_FOLDING multipart 解析错误:boudnary中 |
| MULTIPART_LF_LINE multipart 解析错误:使用\n作为分界线 |
| MULTIPART_SEMICOLON_MISSIONG multipart 解析错误:缺少分号 |
| MULTIPART_STRICT_ERROR 当以下值为1时,该值为1; REQBODY_PROCESSOR_ERROR MULTIPART_BOUNDARY_QUOTED
MULTIPART_BOUNDARY_WHITESPACE
MULTIPART_DATA_BEFORE
MULTIPART_DATA_AFTER
MULTIPART_HEADER_FOLDING
MULTIPART_LF_LINE 使用换行做分界线
MULTPART_SEMICOLON_MISSING 分号缺失
MULTPART_INVALID_QUOTING 无效引号
|
| MULTIPART_INVALID_QUOTING multipart 解析错误: 无效引号 |
| MULTIPART_UNMATCHED_BOUDDARY multipart 解析错误:不合规范的boudnary,容易漏报 |
| REQBODY_PROCESSOR 处理request解析,内置的解析功能包括URLENCODED, MULTIPART, XML |
| REQBODY_PROCESSOR_ERROR request解析错误标记,1表示错误,0表示ok |
| REQBODY_PROCESSOR_ERROR_MSG request解析错误信息 |
| URLENCODED_ERROR 当解析application/x-www-form-urlencoded格式的请求体出错时值为1 |
二、操作符 operator
绿色:字符串操作符 蓝色:数字操作符 橙色:验证操作副
| ModSecurity |
| @beginsWith |
| @contains |
| @containsWord |
| @endsWith |
| @rx |
| @pm 特征字符串的匹配, 大小不敏感,基于Aho-Corasick匹配算法 |
| @pmFromFile 从文件读取匹配特征字符串 |
| @streq |
| @within |
| @eq |
| @ge |
| @gt |
| @le |
| @lt |
| @validateByteRange |
| @validateDTD XML相关 |
| @validateSchema XML相关 |
| @validateUrlEncoding |
| @validateUtf8Encoding |
| @geoLookup |
| @inspectFile 使用外部脚本处理 |
| @rbl 去RBL REAL-TIME BLANKHOLE LISTS反垃圾邮件黑名单里查找ipv4地址,或hostname |
| @verifyCC |
三、 事件函数transform function
| ModSecurity |
| base64Decode |
| base64Encode |
| compressWhitespace |
| cssDecode |
| escapeSeqDecode 解码ANSI C escape 序列 |
| hexDecode |
| hexEncode |
| htmlEntityDecode |
| jsDecode |
| length |
| lowercase |
| md5 |
| none 移除当前rule的所有transformation functions |
| normalizePath 移除掉多个斜杠 |
| normalizePathWin 移除掉多个斜杠,但首先会将\(win正斜杠) 转化成 /(linux反斜杠) |
| parityEven7bit |
| parityOdd7bit |
| parityZero7bit |
| removeNulls 删除空字节 |
| removeWhiteSpace 删除空格字符 |
| replaceComments 将c格式的注视语句/*...*/转换为空格ASCII 32 |
| replaceNulls 将null字节转换为空格ASCII 32 |
| urlDecode |
| urlDecodeUni url解码%uXXXX 编码范围FF01 -FF5E |
| urlEncode |
| sha1 |
| trimLeft 移除左边的空格 |
| trimeRight 移除右边的空格 |
| trim 移除左右两端的空格 |
四、动作action
绿色:disruptive action (每个rule只能有1个disruptive action,如果有多个disruptive action,那么只有最后一个有效,在rule chain中,disruptive action只能出现在第一个rule中)
蓝色:flow action
紫色:metadata action
红色 :variable action
黄色:logging action
灰色:special action
黑色:其他
| ModSecurity |
| allow 2.5版本之前是只影响当前阶段
2.5版本之后,遵守以下规则
(1)如果单独使用,除了log阶段,其他阶段都停止处理
(2)如果和参数phase一起使用,allow将停止当前阶段的处理,其他阶段不受影响
|
| block 相当于占位符,会被上下文的SecDefaultAction 指令中的动作取代 |
| deny 使用错误页面block 当前事务 |
| drop 断开网络连接 |
| pass 继续执行下一个规则 |
| proxy 代理请求到后端web server |
| redirect 重定向请求到其他web server |
| chain 相当于多个规则的and操作 |
| skip 跳过指定的规则,值为跳过的规则个数,不能跳过同一个规则链中的规则 |
| skipAfter 调转到指定的规则 |
| id 设置规则ID |
| phase 指明处理阶段 |
| msg |
| rev 设置版本号 |
| severity 设置rule的严重级别,最好用文本来指定,v2.5.0版本已弃用 |
| tag |
| capture 将捕获结果存入TX变量,可以存储10个变量,tx变量集合的下标为0-9 |
| deprecatevar 设置指定时间内递减数字型变量 |
| expirevar 设置指定时间内移除过期的变量 |
| initcol 创建持久性collections,通常在阶段1中设置 |
| setenv 设置环境变量 |
| setvar 设置变量 |
| setuid 设置当前事务的user ID |
| setsid 设置当前事务的session ID |
| auditlog 将当前事务记录到log中 |
| log |
| logdata |
| noauditlog |
| nolog |
| sanitiseArg 在日志中将指定的请求参数替换为* |
| sanitiseMatched 在日志中将指定的请求参数,请求头,响应头替换为* |
| sanitiseRequestHeader 在日志中将指定的请求头替换为* |
| sanitiseResponseHeader 在日志中将指定的响应头替换为* |
| ctl 改变当前事务的配置 可以改变以下配置 ![]() |
| multiMatch 每次变量发生变化会进行一次匹配计算 |
| t 在对变量作匹配操作前指定调用的事务处理函数 |
| append 响应体中注入内容,该action必须开启SecContentInjection指令 |
| exec 执行外部脚本或二进制文件 |
| pause 暂定事务处理 |
| prepend 响应体中注入内容,该action必须开启SecContentInjection指令 |
| status action 为 deny与redirect action时指定响应码 |
| xmlns XML专用 |
cloudflare 增加了以下action
disabled DIS exit_blocked(self, "DIS", rulefile, nolog)
simulate SIM exit_blocked(self, "SIM", rulefile, nolog)
五、指令directory
六、常用操作符
| ModSecurity |
| SecRule |
| SecRuleInheritance |
| SecRuleRemoveById |
| SecRuleRemoveByMsg |
| SecRuleUpdateActionById 更新指定RuleID的rule action |
| SecRuleScript |
| SecMarker |
| SecAction |
| SecDefaultAction 设置默认的action |
六、常用操作符
| 或者操作符 e.g.REQUEST_URI|REQUEST_PROTOCOL
: 数组取值操作符 e.g. ARGS:p
! 非操作符 e.g. ARGS|!ARGS:z
@ 操作符函数调用 e.g. @rx
t 事务函数调用 e.g. t:lowercase
& 取数组个数符 e.g. &ARGS @ge 1
%{COLNAME.VARNAME}变量扩展符 e.g. SecRule REQUEST_URI_RAW "!@beginsWith http://%{REQUEST_HEADERS.Host}" "drop,tag:‘WEB_ATTACK/ILLEGALHTTPPROTOCOL‘,msg:‘host header
illegal‘,id:00001,phase:2"
转自:http://danqingdani.blog.163.com/blog/static/18609419520146296181531/
通用格式
SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS]
阶段phase
(1)request headers
(2)request body
(3)response headers
(4)response body
(5) logging
一、变量variable
绿色:请求变量 蓝色:server变量 紫色:响应变量 红色:请求体解析变量 黑色:时间变量 橙色:实体变量
| ModSecurity |
| ARGS 请求参数,类型read-only collection |
| ARGS_COMBINED_SIZE 请求参数的总大小 |
| ARGS_NAMES 请求参数的名字, 类型read-only collection |
| ARGS_GET 查询字符串参数,类型read-only collection |
| ARGS_GET_NAMES 查询字符串参数,类型read-only collection |
| ARGS_POST 请求体参数,类型read-only collection |
| ARGS_POST_NAMES 请求体参数的名字,类型read-only collection |
| FILES 上传文件域,类型read-only collection |
| FILES_COMBINED_SIZE 上传文件大小 |
| FILES_NAMES 上传文件表单文件域参数的名字,类型read-only collection |
| FILES_SIZES 上传文件的大小,类型read-only collection |
| FILES_TMPNAMES 文件临时名字,类型read-only collection |
| PATH_INFO URI path |
| QUERY_STRING 查询字符串 |
| REQUESET_BASENAME URI basename,同时支持/与\这两种文件分隔符 |
| REQUEST_BODY 请求体,默认处理application/x-www-form-urlencoded 请求 |
| REQUEST_COOKIES cookie参数 |
| REQUEST_COOKIES_NAMES cookie参数的名字,类型read-only collection |
| REQUEST_FILENAME URI filename/path |
| REQUEST_HEADERS 请求头,类型read-only collection |
| REQUEST_HEADERS_NAMES 请求头参数的名字, 类型read-only collection |
| REQUEST_LINE 请求行 |
| REQUEST_METHOD 请求方法 |
| REQUEST_PROTOCOL 请求协议 |
| REQUEST_URI 请求URI,但不包括hostname |
| REQUEST_URI_RAW 请求URI,包括hostname |
| AUTH_TYPE 认证类型,代理模式下非本地认证,需要指定Authorization头 |
| REMOTE_ADDR 远程地址, 访问者ip |
| REMOTE_HOST 远程host,访问者hostname,当HostnameLookUps开启时,为dns解析的域名,否则为ip地址 |
| REMOTE_PORT 远程端口,访问者端口 |
| REMOTE_USER 访问者用户名 |
| SERVER_ADDR 服务端地址 |
| SERVER_NAME 服务端hostname,取值Host请求头 |
| SERVER_PORT 服务端端口 |
| SCRIPT_BASENAME 脚本basename, 代理模式不可用 |
| SCRIPT_FILENAME 脚本 filename,代理模式不可用 |
| SCRIPT_GID 脚本group ID,代理模式不可用 |
| SCRIPT_GROUPNAME 脚本 group name,代理模式不可用 |
| SCRIPT_MODE 脚本权限 ,代理模式不可用 1 表示可执行
2 表示可写
4 表示可读
7 表示可写可读可执行
|
| SCRIPT_UID 脚本 user ID,代理模式不可用 |
| SCRIPT_USERNAME 脚本 user name,代理模式不可用 |
| RESPONSE_BODY 响应体 |
| RESPONSE_CONTENT_LENGTH 响应实体长度,单位bytes |
| RESPONSE_CONTENT_TYPE 响应实体类型,仅仅在phase3可用 |
| RESPONSE_HEADERS 响应头,类型read-only collection 在内嵌模式中,像那种会优先将数据发送给客户端的响应头是不可获得的,例如Server,Date,Connection,Content-Type
在代理模式中,阶段5可用
|
| RESPONSE_HEADERS_NAMES 响应头参数的名字,类型read-only collection 在内嵌模式中,像那种会优先将数据发送给客户端的响应头是不可获得的,例如Server,Date,Connection,Content-Type
在代理模式中,阶段5可用
|
| RESPONSE_PROTOCOL 响应协议 |
| RESPONSE_STATUS 响应码,仅代理模式可用 |
| TX 事件内变量, 类型read/write collection 当使用operator @rx或@pm时,TX:0表示capture action捕获的变量 TX:1-TX:9:表示capture action捕获的子串 |
| RULE rule元数据, 类型read/write collection, 用于设置Rule对象的属性:id,rev,severity,logdata, msg |
| SESSION session数据,类型read/write collection 仅当setsid action执行后使用, session对象的属性,SCORE得分, BLOCKED是否阻塞 |
| GEO geo信息,类型read-only collection |
| ENV 环境变量,类型read-only collection,但可以使用setvar来修改变量的值 |
| GLOBAL 全局变量,类型read/write collection |
| IP 存储的ip数据 ,类型read/write collection |
| USER user数据,类型read/write collection |
| XML xml dom相关的,类型read-only collection |
| HIGHEST_SEVERITY 严重级别,值越小级别越高,255表示未设置严重级别 |
| MATCHED_VAR 最近一次匹配的变量 |
| MATCHED_VAR_NAME 最近一次匹配的变量的名字 |
| MODSEC_BUILD modsecurity版本号 |
| SESSION_ID sessionID |
| USERID user ID |
| WEBAPPID web app ID |
| WEBSERVER_ERROR_LOG server产生的错误信息 |
| TIME HH:mm:ss |
| TIME_DAY 1-31 |
| TIME_EPOCH |
| TIME_HOUR 0-23 |
| TIME_MIN 0-59 |
| TIME_MON 0-11 |
| TIME_SEC 0-59 |
| TIME_WDAY 0-6 |
| TIME_YEAR |
| DURATION 时间花费,milliseconds |
| MULTIPART_BOUNDARY_QUOTED multipart 解析错误:boudnary中有引号 |
| MULTIPART_BOUNDARY_WHITESPACE multipart 解析错误:boudnary中有空格 |
| MULTIPART_CRLF_LF_LINES multipart 解析错误:混合使用\r\n 与\n作为分界线, 当允许使用混合粉各符时设置为1 |
| MULTIPART_DATA_BEFORE multipart 解析错误:第一个boudnary前有数据 |
| MULTIPART_DATA_AFTER multipart 解析错误:最后一个boudnary后有数据 |
| MUTLIPART_HEADER_FOLDING multipart 解析错误:boudnary中 |
| MULTIPART_LF_LINE multipart 解析错误:使用\n作为分界线 |
| MULTIPART_SEMICOLON_MISSIONG multipart 解析错误:缺少分号 |
| MULTIPART_STRICT_ERROR 当以下值为1时,该值为1; REQBODY_PROCESSOR_ERROR MULTIPART_BOUNDARY_QUOTED
MULTIPART_BOUNDARY_WHITESPACE
MULTIPART_DATA_BEFORE
MULTIPART_DATA_AFTER
MULTIPART_HEADER_FOLDING
MULTIPART_LF_LINE 使用换行做分界线
MULTPART_SEMICOLON_MISSING 分号缺失
MULTPART_INVALID_QUOTING 无效引号
|
| MULTIPART_INVALID_QUOTING multipart 解析错误: 无效引号 |
| MULTIPART_UNMATCHED_BOUDDARY multipart 解析错误:不合规范的boudnary,容易漏报 |
| REQBODY_PROCESSOR 处理request解析,内置的解析功能包括URLENCODED, MULTIPART, XML |
| REQBODY_PROCESSOR_ERROR request解析错误标记,1表示错误,0表示ok |
| REQBODY_PROCESSOR_ERROR_MSG request解析错误信息 |
| URLENCODED_ERROR 当解析application/x-www-form-urlencoded格式的请求体出错时值为1 |
二、操作符 operator
绿色:字符串操作符 蓝色:数字操作符 橙色:验证操作副
| ModSecurity |
| @beginsWith |
| @contains |
| @containsWord |
| @endsWith |
| @rx |
| @pm 特征字符串的匹配, 大小不敏感,基于Aho-Corasick匹配算法 |
| @pmFromFile 从文件读取匹配特征字符串 |
| @streq |
| @within |
| @eq |
| @ge |
| @gt |
| @le |
| @lt |
| @validateByteRange |
| @validateDTD XML相关 |
| @validateSchema XML相关 |
| @validateUrlEncoding |
| @validateUtf8Encoding |
| @geoLookup |
| @inspectFile 使用外部脚本处理 |
| @rbl 去RBL REAL-TIME BLANKHOLE LISTS反垃圾邮件黑名单里查找ipv4地址,或hostname |
| @verifyCC |
三、 事件函数transform function
| ModSecurity |
| base64Decode |
| base64Encode |
| compressWhitespace |
| cssDecode |
| escapeSeqDecode 解码ANSI C escape 序列 |
| hexDecode |
| hexEncode |
| htmlEntityDecode |
| jsDecode |
| length |
| lowercase |
| md5 |
| none 移除当前rule的所有transformation functions |
| normalizePath 移除掉多个斜杠 |
| normalizePathWin 移除掉多个斜杠,但首先会将\(win正斜杠) 转化成 /(linux反斜杠) |
| parityEven7bit |
| parityOdd7bit |
| parityZero7bit |
| removeNulls 删除空字节 |
| removeWhiteSpace 删除空格字符 |
| replaceComments 将c格式的注视语句/*...*/转换为空格ASCII 32 |
| replaceNulls 将null字节转换为空格ASCII 32 |
| urlDecode |
| urlDecodeUni url解码%uXXXX 编码范围FF01 -FF5E |
| urlEncode |
| sha1 |
| trimLeft 移除左边的空格 |
| trimeRight 移除右边的空格 |
| trim 移除左右两端的空格 |
四、动作action
绿色:disruptive action (每个rule只能有1个disruptive action,如果有多个disruptive action,那么只有最后一个有效,在rule chain中,disruptive action只能出现在第一个rule中)
蓝色:flow action
紫色:metadata action
红色 :variable action
黄色:logging action
灰色:special action
黑色:其他
| ModSecurity |
| allow 2.5版本之前是只影响当前阶段
2.5版本之后,遵守以下规则
(1)如果单独使用,除了log阶段,其他阶段都停止处理
(2)如果和参数phase一起使用,allow将停止当前阶段的处理,其他阶段不受影响
|
| block 相当于占位符,会被上下文的SecDefaultAction 指令中的动作取代 |
| deny 使用错误页面block 当前事务 |
| drop 断开网络连接 |
| pass 继续执行下一个规则 |
| proxy 代理请求到后端web server |
| redirect 重定向请求到其他web server |
| chain 相当于多个规则的and操作 |
| skip 跳过指定的规则,值为跳过的规则个数,不能跳过同一个规则链中的规则 |
| skipAfter 调转到指定的规则 |
| id 设置规则ID |
| phase 指明处理阶段 |
| msg |
| rev 设置版本号 |
| severity 设置rule的严重级别,最好用文本来指定,v2.5.0版本已弃用 |
| tag |
| capture 将捕获结果存入TX变量,可以存储10个变量,tx变量集合的下标为0-9 |
| deprecatevar 设置指定时间内递减数字型变量 |
| expirevar 设置指定时间内移除过期的变量 |
| initcol 创建持久性collections,通常在阶段1中设置 |
| setenv 设置环境变量 |
| setvar 设置变量 |
| setuid 设置当前事务的user ID |
| setsid 设置当前事务的session ID |
| auditlog 将当前事务记录到log中 |
| log |
| logdata |
| noauditlog |
| nolog |
| sanitiseArg 在日志中将指定的请求参数替换为* |
| sanitiseMatched 在日志中将指定的请求参数,请求头,响应头替换为* |
| sanitiseRequestHeader 在日志中将指定的请求头替换为* |
| sanitiseResponseHeader 在日志中将指定的响应头替换为* |
| ctl 改变当前事务的配置 可以改变以下配置 ![]() |
| multiMatch 每次变量发生变化会进行一次匹配计算 |
| t 在对变量作匹配操作前指定调用的事务处理函数 |
| append 响应体中注入内容,该action必须开启SecContentInjection指令 |
| exec 执行外部脚本或二进制文件 |
| pause 暂定事务处理 |
| prepend 响应体中注入内容,该action必须开启SecContentInjection指令 |
| status action 为 deny与redirect action时指定响应码 |
| xmlns XML专用 |
cloudflare 增加了以下action
disabled DIS exit_blocked(self, "DIS", rulefile, nolog)
simulate SIM exit_blocked(self, "SIM", rulefile, nolog)
五、指令directory
六、常用操作符
| ModSecurity |
| SecRule |
| SecRuleInheritance |
| SecRuleRemoveById |
| SecRuleRemoveByMsg |
| SecRuleUpdateActionById 更新指定RuleID的rule action |
| SecRuleScript |
| SecMarker |
| SecAction |
| SecDefaultAction 设置默认的action |
六、常用操作符
| 或者操作符 e.g.REQUEST_URI|REQUEST_PROTOCOL
: 数组取值操作符 e.g. ARGS:p
! 非操作符 e.g. ARGS|!ARGS:z
@ 操作符函数调用 e.g. @rx
t 事务函数调用 e.g. t:lowercase
& 取数组个数符 e.g. &ARGS @ge 1
%{COLNAME.VARNAME}变量扩展符 e.g. SecRule REQUEST_URI_RAW "!@beginsWith http://%{REQUEST_HEADERS.Host}" "drop,tag:‘WEB_ATTACK/ILLEGALHTTPPROTOCOL‘,msg:‘host header
illegal‘,id:00001,phase:2"
转自:http://danqingdani.blog.163.com/blog/static/18609419520146296181531/
