本文介绍Web应用防火墙(Web Application Firewall,简称WAF)日志中包含的专有字段的说明。

必选字段

必选字段表示WAF日志中一定包含的字段。

名称说明取值示例
bypass_matched_ids客户端请求命中的WAF放行类规则的ID,具体包括白名单规则、设置了放行动作的自定义防护策略规则。

如果请求同时命中了多条放行类规则,该字段会记录所有命中的规则ID。多个规则ID间使用半角逗号(,)分隔。

283531
content_type被请求的内容类型。application/x-www-form-urlencoded
final_actionWAF对客户端请求最终执行的防护动作。取值:
  • block:表示拦截。
  • captcha_strict:表示严格滑块验证。
  • captcha:表示普通滑块验证。
  • js:表示JavaScript验证。

关于WAF防护动作的具体含义,请参见WAF防护动作( *_action )含义说明

如果一个请求未触发任何防护模块(包括命中了放行类规则、客户端完成滑块或JS验证后触发放行的情况),则不会记录该字段。

如果一个请求同时触发了多个防护模块,则仅记录最终执行的防护动作。防护动作的优先级由高到低依次为:拦截(block) > 严格滑块验证(captcha_strict) > 普通滑块验证(captcha) > JS验证(js)。

block
final_pluginWAF对客户端请求最终执行的防护动作(final_action)对应的防护模块。取值:
  • waf:表示基础防护规则。
  • acl:表示IP黑名单、自定义规则(访问控制)。
  • cc:表示自定义规则(频率控制)。
  • antiscan:表示扫描防护。

如果一个请求未触发任何防护模块(包括命中了放行类规则、客户端完成滑块或JS验证后触发放行的情况),则不会记录该字段。

如果一个请求同时触发了多个防护模块,则仅记录最终执行的防护动作(final_action)对应的防护模块。

waf
final_rule_idWAF对客户端请求最终应用的防护规则的ID,即final_action对应的防护规则的ID。115341
final_rule_typeWAF对客户端请求最终应用的防护规则(final_rule_id)的子类型。

例如,在final_plugin:waf类型下有final_rule_type:sqlifinal_rule_type:xss等细分的规则类型。

xss/webshell
host客户端请求头部的Host字段,表示被访问的域名(基于您的业务设置,也可能是IP地址)。api.example.com
http_referer客户端请求头部的Referer字段,表示请求的来源URL信息。

如果请求无来源URL信息,则该字段显示-

http://example.com
http_user_agent客户端请求头部的User-Agent字段,包含请求来源的客户端浏览器标识、操作系统标识等信息。Dalvik/2.1.0 (Linux; U; Android 10; Android SDK built for x86 Build/QSR1.200715.002)
http_x_forwarded_for客户端请求头部的X-Forwarded_For(XFF)字段,用于识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址。47.100.XX.XX
https是否是HTTPS请求。取值:
  • on:表示是HTTPS请求。
  • off:表示是HTTP请求。
on
matched_host客户端请求匹配到的WAF防护对象(云产品实例、域名)。
说明 由于WAF防护对象支持配置泛域名,所以客户端请求可能匹配到某个泛域名对象。例如,假设已接入WAF防护的域名对象是*.aliyundoc.com,当被请求的URL是www.aliyundoc.com时,可能匹配到*.aliyundoc.com。
*.aliyundoc.com
querystring客户端请求中的查询字符串,具体指被请求URL中问号(?)后面的部分。title=tm_content%3Darticle&pid=123
real_client_ipWAF对客户端请求进行分析后,判定发起该请求的真实客户端IP,便于您在业务中直接使用。

WAF无法判定真实客户端IP时(例如,由于用户通过代理服务器访问、请求头中IP字段有误等),该字段显示-

192.0.XX.XX
regionWAF实例的地域ID。取值:
  • cn:表示中国内地。
  • int:表示非中国内地。
cn
remote_addr与WAF建立连接的IP。

如果WAF与客户端直接连接,该字段等同于客户端IP;如果WAF前面还有其他七层代理(例如,CDN),该字段表示WAF的上一级代理的IP。

198.51.XX.XX
remote_port与WAF建立连接的端口。

如果WAF与客户端直接连接,该字段等同于客户端端口;如果WAF前面还有其他七层代理(例如,CDN),该字段表示WAF的上一级代理的端口。

80
request_length客户端请求的字节数,包含请求行、请求头和请求体。单位:Byte。111111
request_method客户端请求的请求方法。GET
request_path被请求的相对路径,具体指被请求URL中域名后面且问号(?)前面的部分(不包含查询字符串)。/news/search.php
request_time_msecWAF处理客户端请求所用的时间。单位:毫秒。44
request_traceidWAF为客户端请求生成的唯一标识。7837b11715410386943437009ea1f0
server_protocol源站服务器响应WAF回源请求的协议及版本号。HTTP/1.1
ssl_cipher客户端请求使用的加密套件。ECDHE-RSA-AES128-GCM-SHA256
ssl_protocol客户端请求使用的SSL/TLS协议和版本。TLSv1.2
statusWAF响应客户端请求的HTTP状态码。例如,200(表示请求成功)。200
time客户端请求的发起时间。按照ISO 8601标准表示,并需要使用UTC时间,格式为yyyy-MM-ddTHH:mm:ss+08:002018-05-02T16:03:59+08:00
upstream_addr源站服务器的IP地址和端口。格式为IP:Port。多个记录间使用半角逗号(,)分隔。198.51.XX.XX:443
upstream_response_time源站服务器响应WAF回源请求的处理时间。单位:秒。0.044
upstream_status源站服务器响应WAF回源请求的HTTP状态码。例如,200(表示请求成功)。200
user_id当前WAF实例所属的阿里云账号ID。17045741********

可选字段

可选字段表示您可手动设置,是否要在WAF日志中包含的字段。WAF日志中只记录您已启用的可选字段。

启用可选字段将使WAF日志占用更多的存储容量。如果您的日志存储容量充足,建议您启用更多的可选字段,便于进行更全面的日志分析。关于配置可选字段的具体操作,请参见设置日志字段和存储类型

名称说明取值示例
acl_action客户端请求命中的IP黑名单、自定义规则(访问控制)规则对应的防护动作。取值:
  • block:表示拦截。
  • js:表示JavaScript验证。
  • js_pass:表示客户端通过了JS验证,WAF放行客户端请求。

关于WAF防护动作的具体含义,请参见WAF防护动作( *_action )含义说明

block
acl_rule_id客户端请求命中的IP黑名单、自定义规则(访问控制)规则的ID。151235
acl_rule_type客户端请求命中的IP黑名单、自定义规则(访问控制)规则的类型。取值:
  • custom:表示自定义规则(访问控制)规则。
  • blacklist:表示IP黑名单规则。
custom
acl_test客户端请求命中的IP黑名单、自定义规则(访问控制)规则对应的防护模式。取值:
  • true:表示观察模式,即仅记录日志,不触发拦截等防护动作。
  • false:表示防护模式,WAF对命中防护规则的请求执行拦截等防护动作。
false
antiscan_action客户端请求命中的扫描防护规则对应的防护动作。取值只有block,表示拦截。

关于WAF防护动作的具体含义,请参见WAF防护动作( *_action )含义说明

block
antiscan_rule_id客户端请求命中的扫描防护规则的ID。151235
antiscan_rule_type客户端请求命中的扫描防护规则的类型。取值:
  • highfreq:表示高频扫描封禁规则。
  • dirscan:表示目录遍历封禁规则。
  • scantools:表示扫描工具封禁规则。
highfreq
antiscan_test客户端请求命中的扫描防护规则对应的防护模式。取值:
  • true:表示观察模式,即仅记录日志,不触发拦截等防护动作。
  • false:表示防护模式,WAF对命中防护规则的请求执行拦截等防护动作。
false
body_bytes_sent服务端返回给客户端的响应体的字节数(不含响应头)。单位:Byte。1111
cc_action客户端请求命中的自定义规则(频率控制)规则对应的防护动作。取值:
  • block:表示拦截。
  • js:表示JavaScript验证。
  • js_pass:表示客户端通过了JS验证,WAF放行客户端请求。

关于WAF防护动作的具体含义,请参见WAF防护动作( *_action )含义说明

block
cc_rule_id客户端请求命中的自定义规则(频率控制)规则的ID。151234
cc_rule_type客户端请求命中的规则的类型。取值固定为custom,表示自定义规则(频率控制)规则。custom
cc_test客户端请求命中的自定义规则(频率控制)规则对应的防护模式。取值:
  • true:表示观察模式,即仅记录日志,不触发拦截等防护动作。
  • false:表示防护模式,WAF对命中防护规则的请求执行拦截等防护动作。
false
request_body访问请求体,最大支持存储8 KB。test123curl -ki https://automated-acltest02.***.top/ --resolve automated-acltest02.***.top:443:39.107.XX.XX
request_header自定义请求头部,选中该字段后,需填写请求头名称,多个请求头名称以英文逗号(,)隔开。{"ttt":"abcd"}
server_port被请求的目的端口。443
waf_action客户端请求命中的基础防护规则对应的防护动作。取值仅有block,表示拦截。

关于WAF防护动作的具体含义,请参见WAF防护动作( *_action )含义说明

block
waf_rule_id客户端请求命中的基础防护规则的ID。
说明 该规则ID对应您在安全报表页面的基础防护规则页签下,通过规则命中记录列表,查看到的规则ID。更多信息,请参见基础防护规则
113406
waf_rule_type客户端请求命中的基础防护规则的类型。取值:
  • xss:表示跨站脚本防护规则。
  • code_exec:表示代码执行防护规则。
  • webshell:表示webshell防护规则。
  • sqli:表示SQL注入防护规则。
  • lfilei:表示本地文件包含防护规则。
  • rfilei:表示远程文件包含防护规则。
  • other:表示其他防护规则。
xss
waf_test客户端请求命中的基础防护规则对应的防护模式。取值:
  • true:表示观察模式,即仅记录日志,不触发拦截等防护动作。
  • false:表示防护模式,WAF对命中防护规则的请求执行拦截等防护动作。
false
major_protection_action客户端请求命中的重保场景防护模板对应的防护动作。关于WAF防护动作的具体说明,请参见WAF防护动作( *_action )含义说明block
major_protection_rule_id客户端请求命中的重保场景防护模板对应的规则ID。2221
major_protection_rule_type客户端请求命中的重保场景防护模板对应的规则类型。取值:
  • waf_blocks:表示重保防护规则组。
  • threat_intelligence:表示重保威胁情报。
  • blacklist:表示重保IP黑名单。
  • shiro:表示Shiro反序列化漏洞防护。
waf_blocks
major_protection_test客户端请求命中的重保场景防护对应的防护模式。取值:
  • true:表示观察模式,即仅记录日志,不触发拦截等防护动作。
  • false:表示防护模式,WAF对命中防护规则的请求执行拦截等防护动作。
true
response_set_cookie客户端响应下发的Cookie。acw_tc=781bad3616674790875002820e2cebbc55b6e0dfd9579302762b1dece40e0a;path=\/;HttpOnly;Max-Age=1800
response_header客户端的全部响应头部。{"transfer-encoding":"chunked","set-cookie":"acw_tc=***;path=\/;HttpOnly;Max-Age=1800","content-type":"text\/html;charset=utf-8","x-powered-by":"PHP\/7.2.24","server":"nginx\/1.18.0","connection":"close"}
response_info客户端的响应体,最大支持存储16KB。当content-encoding头部为gzip时,响应体记录为base64编码。$_POST接收:<br/>Array ( [***] => ) <hr/> $GLOBALS['HTTP_RAW_POST_DATA']接收:<br/> <hr/> php://input接收:***
dlp_action客户端请求命中的信息泄露防护规则对应的防护动作。取值:
  • monitor:表示观察。
  • block:表示拦截。
  • filter:表示打码。

关于WAF防护动作的具体含义,请参见WAF防护动作( *_action )含义说明

block
dlp_rule_id客户端请求命中的信息泄露防护规则的ID。20031483
dlp_test客户端请求命中的信息泄露防护规则对应的防护模式。取值:
  • true:表示观察模式,即仅记录日志,不触发拦截等防护动作。
  • false:表示防护模式,WAF对命中防护规则的请求执行拦截等防护动作。
true
scene_action客户端请求命中的Bot管理场景化配置规则对应的防护动作。取值:
  • js:表示JS校验。
  • sigchl:表示动态令牌挑战。
  • block:表示拦截。
  • monitor:表示观察。
  • bypass:表示放行。
  • captcha:表示滑块校验。
  • captcha_strict:表示严格滑块校验。

关于WAF防护动作的具体含义,请参见WAF防护动作( *_action )含义说明

js
scene_id客户端请求命中的Bot管理场景化配置规则对应的场景ID。a82d992b_bc8c_47f0_87ce_******
scene_rule_id客户端请求命中的Bot管理场景化配置规则的ID。js-a82d992b_bc8c_47f0_87ce_******
scene_rule_type客户端请求命中的Bot管理场景化配置规则的类型。取值:
  • bot_aialgo:表示AI智能防护规则。
  • cc:表示自定义限速规则。
  • intelligence:表示威胁情报。
  • js:表示简单JS规则。
  • sigchl:表示动态令牌规则。
  • sdk:表示SDK签名和设备采集规则、二次打包检测规则。
bot_aialgo
scene_test客户端请求命中的Bot管理场景化配置规则对应的防护模式。取值:
  • true:表示观察模式,即仅记录日志,不触发拦截等防护动作。
  • false:表示防护模式,WAF对命中防护规则的请求执行拦截等防护动作。
true