dabashan / bt-thinkphp-waf
大巴山宝塔WAF - ThinkPHP防护中间件
dev-main
2026-04-03 14:07 UTC
Requires
- php: >=8.0
- topthink/framework: ^6.0|^8.0
This package is auto-updated.
Last update: 2026-05-03 14:16:30 UTC
README
大巴山宝塔WAF - ThinkPHP 防护中间件
简介
本包为 大巴山宝塔WAF 提供 ThinkPHP 框架集成支持,兼容 TP5.x 和 TP6.x。
核心功能:
- CC 防护:基于文件计数器的速率限制(无需 Redis/Memcached)
- URL 规则检测:SQL 注入、路径穿越、敏感文件访问
- ThinkPHP 专项规则:针对 ThinkPHP CVE 漏洞的专项检测
- POST 检测:请求体恶意内容检测
- UA 检测:恶意爬虫和扫描器识别
- 运营监控:慢请求统计、错误日志、流量趋势
安装
composer require dabashan/bt-thinkphp-waf
配置
将 config/dbswaf.php 复制到您的 ThinkPHP 项目配置目录:
# TP6 cp vendor/dabashan/bt-thinkphp-waf/config/dbswaf.php config/dbswaf.php # TP5 cp vendor/dabashan/bt-thinkphp-waf/config/dbswaf.php application/extra/dbswaf.php
注册中间件
ThinkPHP 6.x(app/middleware.php):
<?php return [ \Dabashan\BtThinkphpWaf\DbswafMiddleware::class, // 可选:开启运营监控 \Dabashan\BtThinkphpWaf\DbswafMonitor::class, ];
ThinkPHP 5.x(application/http.php):
<?php namespace app\http; class Http extends \think\Http { protected $middleware = [ \Dabashan\BtThinkphpWaf\DbswafMiddleware::class, \Dabashan\BtThinkphpWaf\DbswafMonitor::class, ]; }
或在 application/middleware.php 中:
<?php return [ \Dabashan\BtThinkphpWaf\DbswafMiddleware::class, ];
配置说明
编辑 config/dbswaf.php:
return [ 'enable' => true, // WAF 总开关 'waf_dir' => '/www/server/btwaf', // 宝塔 WAF 数据目录 // CC 防护 'cc_enable' => true, 'cc_limit' => 100, // 时间窗口内最大请求数 'cc_window' => 60, // 统计时间窗口(秒) 'cc_ban_time' => 600, // 封禁时长(秒) // 规则检测 'url_enable' => true, // URL 规则检测 'post_enable' => true, // POST 数据检测 'ua_enable' => true, // UA 检测 'thinkphp_enable' => true, // ThinkPHP 专项规则 // IP 白名单(支持 CIDR) 'white_ips' => ['127.0.0.1', '::1'], // URL 白名单(正则表达式) 'white_urls' => ['^/api/webhook'], ];
兼容性
| 版本 | 支持 |
|---|---|
| ThinkPHP 5.0 | ✅ |
| ThinkPHP 5.1 | ✅ |
| ThinkPHP 6.x | ✅ |
| PHP 7.2+ | ✅ | | PHP 8.x | ✅ |
版权
Copyright © 四川大巴山网络科技有限公司
本包基于 MIT 协议开源,仅供与大巴山宝塔WAF配合使用。