phpwaf日志无统一路径,取决于部署方式:nginx+mod_security通常存于/var/log/modsec_audit.log;saas类(如腾讯云)需通过控制台或api获取;轻量级可能存于/var/log/phpwaf/或/tmp/phpwaf.log。
PHPWAF 日志默认存放在哪里
PHPWAF(如腾讯云 PHPWAF、开源 mod_security + PHP 规则引擎等)本身没有统一日志路径,实际日志位置取决于部署方式和配置。常见情况如下:
- 若使用
nginx+mod_security+ PHPWAF 规则,拦截日志通常写入/var/log/modsec_audit.log或自定义的AuditLog路径 - 若为 SaaS 类 PHPWAF(如腾讯云 Web 应用防火墙),日志不落本地,需通过控制台「访问日志」或「攻击日志」模块查看,或调用其 OpenAPI 获取
- 部分轻量 PHPWAF(如基于
php.ini扩展或中间件实现)可能将日志写入/var/log/phpwaf/、/tmp/phpwaf.log或与 Web 服务共用的error_log
先确认你用的是哪一类:执行 ps aux | grep -E "(nginx|apache|php-fpm)" 看 Web 服务类型,再查其配置中是否加载了 modsecurity 或自定义 WAF 模块。
如何开启并验证 PHPWAF 的访问与拦截日志
很多 PHPWAF 默认关闭详细审计日志,尤其拦截日志(audit log)需手动启用,否则 modsec_audit.log 为空或只记错误。
- 检查
modsecurity.conf(常位于/etc/modsecurity/或/usr/local/etc/modsecurity/)中是否设置:SecAuditEngine On(必须开启)、SecAuditLog /var/log/modsec_audit.log - 确保
SecAuditLogParts ABIJEFHZ包含H(响应头)和Z(审计日志结尾分隔符),否则关键字段(如匹配规则 ID、触发变量)可能缺失 - 重启 Web 服务后,用测试 payload(如
?id=1%20union%20select)触发拦截,再执行tail -f /var/log/modsec_audit.log实时观察是否写入新条目
注意:SecAuditLogType Serial 是默认安全模式,若并发高可考虑 Concurrent,但需配合 SecAuditLogStorageDir 使用,否则会报错。
立即学习“PHP免费学习笔记(深入)”;