dabashan/bt-thinkphp-waf

大巴山宝塔WAF - ThinkPHP防护中间件

Maintainers

Package info

github.com/dabashannet/thinkphp-waf

pkg:composer/dabashan/bt-thinkphp-waf

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-04-03 14:07 UTC

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.xapp/middleware.php):

<?php
return [
    \Dabashan\BtThinkphpWaf\DbswafMiddleware::class,
    // 可选:开启运营监控
    \Dabashan\BtThinkphpWaf\DbswafMonitor::class,
];

ThinkPHP 5.xapplication/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 © 四川大巴山网络科技有限公司

官网:https://www.dabashan.cc

本包基于 MIT 协议开源,仅供与大巴山宝塔WAF配合使用。