大巴山宝塔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.phpThinkPHP 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配合使用。