WAF规则参数

WAF规则参数为WAF检查规则过程中的被检查项。

通用请求报头长度限制

  • 名称:通用请求报头长度限制
  • 代号:${requestGeneralHeaderLength}
  • 描述:通用报头比如Cache-Control、Accept之类的长度限制,防止缓冲区溢出攻击。

通用响应报头长度限制

  • 名称:通用响应报头长度限制
  • 代号:${responseGeneralHeaderLength}
  • 描述:通用报头比如Cache-Control、Date之类的长度限制,防止缓冲区溢出攻击。

客户端地址(IP)

  • 名称:客户端地址(IP)
  • 代号:${remoteAddr}
  • 描述:试图通过分析X-Forwarded-For等报头获取的客户端地址,比如192.168.1.100,存在伪造的可能。

客户端源地址(IP)

  • 名称:客户端源地址(IP)
  • 代号:${rawRemoteAddr}
  • 描述:直接连接的客户端地址,比如192.168.1.100。

客户端端口

  • 名称:客户端端口
  • 代号:${remotePort}
  • 描述:直接连接的客户端地址端口。

客户端用户名

  • 名称:客户端用户名
  • 代号:${remoteUser}
  • 描述:通过BasicAuth登录的客户端用户名。

请求URI

  • 名称:请求URI
  • 代号:${requestURI}
  • 描述:包含URL参数的请求URI,类似于 /hello/world?lang=go,不包含域名部分。

请求路径

  • 名称:请求路径
  • 代号:${requestPath}
  • 描述:不包含URL参数的请求路径,类似于 /hello/world,不包含域名部分。

请求文件扩展名

  • 名称:请求文件扩展名
  • 代号:${requestFileExtension}
  • 描述:请求路径中包含的文件扩展名,不含点(.)符号,比如css、js、png等。
  • 版本:v1.0.4

请求完整URL

  • 名称:请求完整URL
  • 代号:${requestURL}
  • 描述:完整的请求URL,包含协议、域名、请求路径、参数等,类似于 https://example.com/hello?name=lily

请求内容长度

  • 名称:请求内容长度
  • 代号:${requestLength}
  • 描述:请求报头中的Content-Length。

请求体内容

  • 名称:请求体内容
  • 代号:${requestBody}
  • 描述:通常在POST或者PUT等操作时会附带请求体,最大限制32M。

请求URI和请求体组合

  • 名称:请求URI和请求体组合
  • 代号:${requestAll}
  • 描述:${requestURI}和${requestBody}组合。

请求表单参数

  • 名称:请求表单参数
  • 代号:${requestForm}
  • 描述:获取POST或者其他方法发送的表单参数,最大请求体限制32M。

上传文件

  • 名称:上传文件
  • 代号:${requestUpload}
  • 描述:获取POST上传的文件信息,最大请求体限制32M。

请求JSON参数

  • 名称:请求JSON参数
  • 代号:${requestJSON}
  • 描述:获取POST或者其他方法发送的JSON,最大请求体限制32M,使用点(.)符号表示多级数据。

请求方法

  • 名称:请求方法
  • 代号:${requestMethod}
  • 描述:比如GET、POST。

请求协议

  • 名称:请求协议
  • 代号:${scheme}
  • 描述:比如http或https。

HTTP协议版本

  • 名称:HTTP协议版本
  • 代号:${proto}
  • 描述:比如HTTP/1.1。

主机名

  • 名称:主机名
  • 代号:${host}
  • 描述:比如example.com。

CNAME

  • 名称:CNAME
  • 代号:${cname}
  • 描述:当前网站服务CNAME,比如38b48e4f.example.com。

是否为CNAME

  • 名称:是否为CNAME
  • 代号:${isCNAME}
  • 描述:是否为CNAME,值为1(是)或0(否)。

请求来源

  • 名称:请求来源
  • 代号:${refererOrigin}
  • 描述:请求报头中的Referer和Origin值。

请求来源Referer

  • 名称:请求来源URL
  • 代号:${referer}
  • 描述:请求报头中的Referer值。

客户端信息

  • 名称:客户端信息
  • 代号:${userAgent}
  • 描述:比如Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103。

内容类型

  • 名称:内容类型
  • 代号:${contentType}
  • 描述:请求报头的Content-Type。

所有cookie组合字符串

  • 名称:所有cookie组合字符串
  • 代号:${cookies}
  • 描述:比如sid=IxZVPFhE&city=beijing&uid=18237。

单个cookie值

  • 名称:单个cookie值
  • 代号:${cookie}
  • 描述:单个cookie值。

所有URL参数组合

  • 名称:所有URL参数组合
  • 代号:${args}
  • 描述:比如name=lu&age=20。

单个URL参数值

  • 名称:单个URL参数值
  • 代号:${arg}
  • 描述:单个URL参数值。

所有请求报头内容

  • 名称:所有请求报头内容
  • 代号:${headers}
  • 描述:使用换行符(\n)隔开的报头内容字符串,每行均为”NAME: VALUE格式”。

所有请求报头名称

  • 名称:所有请求报头名称
  • 代号:${headerNames}
  • 描述:使用换行符(\n)隔开的报头名称字符串,每行一个名称。

单个请求报头值

  • 名称:单个请求报头值
  • 代号:${header}
  • 描述:单个报头值。

请求报头最大长度

  • 名称:请求报头最大长度
  • 代号:${headerMaxLength}
  • 描述:最长的请求报头的长度。

国家/地区名称

  • 名称:国家/地区名称
  • 代号:${geoCountryName}
  • 描述:当前客户端所处国家/地区名称。

省份名称

  • 名称:省份名称
  • 代号:${geoProvinceName}
  • 描述:当前客户端所处中国省份名称。

城市名称

  • 名称:城市名称
  • 代号:${geoCityName}
  • 描述:当前客户端所处中国城市名称。

ISP名称

  • 名称:ISP名称
  • 代号:${ispName}
  • 描述:当前客户端所处ISP名称。

CC统计

  • 名称:CC统计
  • 代号:${cc}
  • 描述:对统计对象进行统计。

防盗链

  • 名称:防盗链
  • 代号:${refererBlock}
  • 描述:对统计对象进行统计。

响应状态码

  • 名称:响应状态码
  • 代号:${status}
  • 描述:响应状态码,比如200、404、500。

响应报头

  • 名称:响应报头
  • 代号:${responseHeader}
  • 描述:响应报头值。

响应内容

  • 名称:响应内容
  • 代号:${responseBody}
  • 描述:响应内容字符串。

响应内容长度

  • 名称:响应内容长度
  • 代号:${bytesSent}
  • 描述:响应内容长度,通过响应的报头Content-Length获取。