本文介绍了WAF日志中包含的所有字段的说明。

字段检索表

下表描述了WAF支持的所有日志字段。您可以通过字段名称检索您需要了解的字段。

首字母 字段
a acl_action | acl_rule_type
b block_action | body_bytes_sent | bypass_matched_ids
c cc_action | cc_rule_type | content_type
f final_action | final_plugin | final_rule_id | final_rule_type
h host | http_cookie | http_referer | http_user_agent | http_x_forwarded_for | https
m matched_host
q querystring
r real_client_ip | region | remote_addr | remote_port | request_length | request_method | request_path | request_time_msec | request_traceid
s server_port | server_protocol | ssl_cipher | ssl_protocol | status
t time | topic
u ua_browser | ua_browser_family | ua_browser_type | ua_browser_version | ua_device_type | ua_os | ua_os_family | upstream_addr | upstream_response_time | upstream_status| user_id
w waf_action | waf_rule_id

WAF防护类字段

防护类字段表示客户端请求触发了WAF不同防护模块下的防护规则(包含放行类、拦截类等规则),由WAF基于防护逻辑生成的日志字段,帮助您进行业务受攻击行为的分析。

下表描述了WAF支持的所有防护模块(对应plugin字段的取值)。

plugin取值 说明
waf 表示Web安全 > Web入侵防护下的规则防护引擎
deeplearning 表示Web安全 > Web入侵防护下的深度学习引擎
dlp 表示Web安全 > 数据安全下的防敏感信息泄露
account 表示Web安全 > 数据安全下的账户安全
normalized 表示Web安全 > 高级防护下的主动防御
acl 表示访问控制/限流下的IP黑名单自定义防护策略(ACL访问控制)
cc 表示访问控制/限流下的CC安全防护自定义防护策略(CC攻击防护)
antiscan 表示访问控制/限流下的扫描防护
scene 表示Bot管理下的场景化配置
antifraud 表示Bot管理 > 精细化配置下的数据风控
intelligence 表示Bot管理 > 精细化配置下的爬虫威胁情报
algorithm 表示Bot管理 > 精细化配置下的典型爬虫行为识别
wxbb 表示Bot管理 > 精细化配置下的App防护

下表描述了WAF支持的所有防护动作(对应_action类型字段的取值,例如,final_action、waf_action等)。

action取值 说明
bypass 表示放行,即WAF将客户端请求转发到源站服务器进行处理。
block 表示拦截,即WAF拦截客户端请求并向客户端返回405页面。
captcha_strict 表示严格滑块验证,即WAF向客户端返回滑动验证页面。如果客户端成功执行滑动验证,则WAF放行本次请求,否则拦截请求。严格滑块校验模式下,客户端的每次请求都需要验证。
captcha 表示普通滑块验证,即WAF向客户端返回滑动验证页面。如果客户端成功执行滑动验证,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求(不需要重复校验),否则拦截请求。
js 表示JS校验,即WAF向客户端返回一段正常浏览器可以自动执行的JS代码。如果客户端正常执行了JS代码,则WAF在一段时间(默认30分钟)内放行该客户端的所有请求(不需要重复校验),否则拦截请求。

名称 说明 取值示例
block_action
注意 该字段已经不再维护,输出信息也不完全准确,后续将会下线。如果您在业务中使用了该字段,请尽快将其替换成对应的新字段(final_plugin)。
触发了拦截动作的WAF防护类型。取值:
  • tmd:表示CC攻击防护。
  • waf:表示Web攻击防护。
  • acl:表示精准访问控制。
  • geo:表示区域封禁。
  • antifraud:表示数据风控。
  • antibot:表示防爬封禁。
waf
bypass_matched_ids 客户端请求命中的WAF放行类规则的ID,具体包括白名单规则、设置了放行动作的自定义防护策略规则。

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

283531
final_action WAF对客户端请求最终执行的防护动作。关于该字段的取值说明,请参见WAF防护动作(action)说明

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

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

block
final_plugin WAF对客户端请求最终执行的防护动作(final_action)对应的防护模块。关于该字段的取值说明,请参见WAF防护模块(plugin)说明

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

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

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

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

xss/webshell
acl_action 客户端请求命中的IP黑名单自定义防护策略(ACL访问控制)规则对应的防护动作。

关于该字段的取值说明,请参见WAF防护动作(action)说明

pass
acl_rule_type 客户端请求命中的IP黑名单自定义防护策略(ACL访问控制)规则的类型。取值:
  • custom:表示自定义防护策略(ACL访问控制)规则。
  • blacklist:表示IP黑名单规则。
custom
cc_action 客户端请求命中的CC安全防护自定义防护策略(CC攻击防护)规则对应的防护动作。

关于该字段的取值说明,请参见WAF防护动作(action)说明

block
cc_rule_type 客户端请求命中的CC安全防护自定义防护策略(CC攻击防护)规则的类型。取值:
  • custom:表示自定义防护策略(CC攻击防护)规则。
  • system:表示CC安全防护规则。
custom
waf_action 客户端请求命中的规则防护引擎规则对应的防护动作。

关于该字段的取值说明,请参见WAF防护动作(action)说明

block
waf_rule_id 客户端请求命中的规则防护引擎规则的ID。 113406

非防护类字段

非防护类字段包含WAF从客户端请求提取的与请求逻辑相关的字段(例如,常用的请求头部字段等)以及WAF对请求进行分析处理后生成的与请求行为相关的补充字段(例如,请求的真实客户端IP、源站响应码等)。

名称 说明 取值示例
content_type 被请求的内容类型。 application/x-www-form-urlencoded
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 7.0; EDI-AL10 Build/HUAWEIEDISON-AL10)
http_x_forwarded_for 客户端请求头部的X-Forwarded_For(XFF)字段,用于识别通过HTTP代理或负载均衡方式连接到Web服务器的客户端最原始的IP地址。
querystring 客户端请求中的查询字符串,具体指被请求URL中问号(?)后面的部分。 title=tm_content%3Darticle&pid=123
real_client_ip WAF对客户端请求进行分析后,判定发起该请求的真实客户端IP,便于您在业务中直接使用。

WAF无法判定真实客户端IP时,该字段显示-

1.XX.XX.1
remote_addr 与WAF建立连接的IP。

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

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

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

80
request_length 客户端请求的字节数,包含请求行、请求头和请求体。单位:Byte。 111111
request_method 客户端请求的请求方法。 GET
request_path 被请求的相对路径,具体指被请求URL中域名后面且问号(?)前面的部分(不包含查询字符串)。 /news/search.php
request_time_msec WAF处理客户端请求所用的时间。单位:毫秒。 44
request_traceid WAF为客户端请求生成的唯一标识。 7837b11715410386943437009ea1f0
server_port 被请求的目的端口。 443
server_protocol 源站服务器响应WAF回源请求的协议及版本号。 HTTP/1.1
ssl_cipher 客户端请求使用的加密套件。 ECDHE-RSA-AES128-GCM-SHA256
ssl_protocol 客户端请求使用的SSL/TLS协议和版本。 TLSv1.2
time 客户端请求的发起时间。按照ISO 8601标准表示,并需要使用UTC时间,格式为yyyy-MM-ddTHH:mm:ss+08:00 2018-05-02T16:03:59+08:00
__topic__ 日志的主题,该字段取值固定为waf_access_log,表示WAF日志。 waf_access_log
upstream_response_time 源站服务器响应WAF回源请求的处理时间。单位:秒。 0.044
upstream_status 源站服务器响应WAF回源请求的HTTP状态码。例如,200(表示请求成功)。 200
body_bytes_sent 客户端请求体的字节数。单位:Byte。 1111
matched_host 客户端请求匹配到的已接入WAF进行防护的域名。
说明 由于WAF网站接入中支持配置泛域名,所以客户端请求可能匹配到某个泛域名配置。例如,假设已接入WAF防护的域名是*.aliyun.com,当被请求的URL是www.aliyun.com时,可能匹配到*.aliyun.com。
*.aliyun.com
https 是否是HTTPS请求。取值:
  • true:表示是HTTPS请求。
  • false:表示是HTTP请求。
true
region WAF实例的地域ID。取值:
  • cn:表示中国内地。
  • int:表示海外地区。
cn
status WAF响应客户端请求的HTTP状态码。例如,200(表示请求成功)。 200
ua_browser 发起请求的浏览器的名称。 ie9
ua_browser_family 发起请求的浏览器所属系列。 internet explorer
ua_browser_type 发起请求的浏览器的类型。 web_browser
ua_browser_version 发起请求的浏览器的版本。 9.0
ua_device_type 发起请求的客户端的设备类型。 computer
ua_os 发起请求的客户端的操作系统类型。 windows_7
ua_os_family 发起请求的客户端所属的操作系统系列。 windows
upstream_addr 源站服务器的IP地址和端口。格式为IP:Port。多个记录间使用英文逗号(,)分隔。 1.XX.XX.1:443
user_id 拥有当前WAF实例的阿里云账号ID。 17045741********