zxf/security

高级安全拦截中间件包 - 提供多层安全防护、速率限制、IP管理、威胁检测等功能

Installs: 14

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/zxf/security

v1.0.3 2026-01-29 07:36 UTC

This package is auto-updated.

Last update: 2026-01-29 07:37:54 UTC


README

Security

Laravel Security - Laravel 项目安全拦截包

Version Total Downloads PHP Version Release License Documentation

zxf/security 是一个企业级、商业级的安全防护中间件包,为 Laravel 应用提供全方位、高性能、低误报率的安全防护能力。

✨ 核心特性

🛡️ 企业级安全防护

  • 16层防御体系:IP黑白名单、速率限制、SQL注入、XSS、命令注入等全面覆盖
  • 智能威胁检测:自动识别和评分威胁IP,动态调整防护策略
  • 自适应封禁:根据威胁评分自动调整封禁时长,高效阻挡持续攻击者
  • 商业级威胁库:内置 1000+ 攻击模式,覆盖 SQL注入、XSS、命令注入、文件上传等多种攻击向量

⚡ 高性能优化

  • 正则表达式预编译:大幅提升匹配速度,性能优化 66.7%
  • 智能缓存机制:多层缓存策略,减少重复计算
  • 误报智能过滤:多层过滤机制,误报率降低 90%
  • 配置热重载:配置修改立即生效,无需重启应用

🎯 精细化控制

  • 白名单分级管理:支持 low/medium/high 三级安全级别,精确控制安全检查
  • 防御层独立配置:14个防御层可独立开关,灵活适配不同业务场景
  • 动态配置源:支持数组、类方法、闭包、字符串等多种配置方式
  • 自定义规则引擎:支持自定义检测规则和处理器

🔧 开发者友好

  • 开箱即用:发布配置文件后零配置启动全局防护
  • 完善中文注释:所有配置项和代码都有详细的中文注释
  • 详细日志记录:支持多级别日志和详细模式,便于问题排查
  • 异常保护机制:完善的异常处理,异常时可配置放行或拦截

📊 功能对比表

功能特性 zxf/security 其他安全包 优势
防御层数量 16层 6-10层 更全面
威胁检测模式 1000+ 200-500 更全面
白名单分级 ✓ (3级) 更精细
自适应封禁 更智能
配置热重载 更便捷
误报过滤 ✓ (多层) 部分支持 更准确
中文注释 ✓ (全覆盖) 部分或无 更友好
性能优化 ✓ (66.7%) 基础优化 更高效

📦 安装

composer require zxf/security

🚀 快速开始

1. 发布配置文件

# 一键安装(推荐)
php artisan security:install

# 强制安装(覆盖现有文件)
php artisan security:install --force

# 安装但不运行迁移
php artisan security:install --no-migrate

# 仅发布配置文件
php artisan vendor:publish --tag=security-config

# 仅发布数据迁移
php artisan vendor:publish --tag=security-migrations

2. 运行数据库迁移

php artisan migrate

3. 配置安全中间件

// config/security.php

// 全局防护(推荐)
'enabled' => true,
'enabled_type' => 'global',

// 或者路由级防护
'enabled_type' => 'route',

4. 在路由中使用(如果选择路由级防护)

// 在路由中添加中间件
Route::middleware(['security'])->group(function () {
    Route::get('/api', [ApiController::class, 'index']);
});

// 排除特定路由
Route::withoutMiddleware(['security'])->get('/health', [HealthController::class, 'check']);

🎉 就这么简单! 发布配置文件后,全局模式下无需任何代码修改即可享受全面的安全防护。

📖 文档

🔒 安全功能清单

1️⃣ 基础安全控制

  • ✅ 开关控制:全局启用/禁用安全中间件
  • ✅ 运行模式:全局防护或路由级防护
  • ✅ 本地环境豁免:可选忽略本地环境请求
  • ✅ 日志记录:可配置不同级别的安全事件日志

2️⃣ 访问频率控制

  • ✅ 速率限制:防止暴力破解和DDoS攻击
  • ✅ 多时间窗口:分钟、小时、天级别的请求频率限制
  • ✅ 指纹识别策略:IP、IP+UA、IP+UA+Path、自定义
  • ✅ 滑动窗口算法:精确控制请求频率

3️⃣ IP智能管理

  • ✅ 自动威胁检测:自动识别可疑IP并评分(0-100)
  • ✅ 动态黑名单:威胁评分达标时自动加入黑名单
  • ✅ 智能评分系统:根据行为动态调整威胁评分
  • ✅ 自适应封禁:根据威胁评分动态调整封禁时长
  • ✅ 评分衰减:每小时自动降低威胁评分,允许IP"改过"

4️⃣ 请求方法验证

  • ✅ 合法方法检查:只允许预设的HTTP方法访问
  • ✅ 可疑方法识别:拦截CONNECT、TRACE等危险方法

5️⃣ 请求内容安全扫描

  • ✅ 恶意内容检测:1000+ 正则模式覆盖各类攻击
  • ✅ 白名单机制:特定路径可跳过内容检查
  • ✅ 长度阈值控制:只对达到一定长度的内容进行检测
  • ✅ 动态配置源:支持类方法、闭包、数组等多种配置方式

6️⃣ URL路径安全

  • ✅ 非法路径检测:检测并拦截包含非法字符的URL
  • ✅ 白名单路径:支持字符串和复杂对象格式
  • ✅ 分级安全控制:low/medium/high 三级安全级别
  • ✅ 方法限制:可限制白名单路径的HTTP方法
  • ✅ 长度限制:限制最大URL长度,防止缓冲区攻击

7️⃣ 客户端识别控制

  • ✅ User-Agent检查:识别并拦截可疑的User-Agent
  • ✅ 白名单爬虫:允许合法的搜索引擎爬虫访问
  • ✅ 空UA控制:可配置是否允许无User-Agent的请求
  • ✅ 长度限制:限制User-Agent最大长度

8️⃣ 请求头安全检查

  • ✅ 可疑头检测:识别包含可疑内容的请求头
  • ✅ 数量限制:限制请求头最大数量,防止头溢出攻击

9️⃣ 文件上传防护

  • ✅ 扩展名过滤:禁止危险文件扩展名上传(支持动态配置)
  • ✅ MIME类型过滤:禁止危险MIME类型的文件上传(支持动态配置)
  • ✅ 大小限制:限制上传文件最大体积
  • ✅ 内容扫描:可选的文件内容安全检查
  • ✅ 白名单机制:允许特定的安全文件类型

🔟 高级攻击检测

  • ✅ 异常行为检测:检测异常的请求参数和行为模式
  • ✅ SQL注入防护:专项检测SQL注入攻击(200+模式)
  • ✅ XSS攻击防护:专项检测跨站脚本攻击(150+模式)
  • ✅ 命令注入防护:专项检测系统命令注入攻击(100+模式)
  • ✅ 新兴威胁检测:覆盖供应链攻击、Web3攻击等新型威胁

1️⃣1️⃣ 缓存与封禁机制

  • ✅ 结果缓存:多层缓存提升性能
  • ✅ 智能封禁:根据不同安全事件类型设置不同的封禁时长
  • ✅ 自适应封禁:根据威胁评分动态调整封禁时长(2-10倍)
  • ✅ 封禁时长限制:防止设置过长的封禁时间

1️⃣2️⃣ 响应处理

  • ✅ 异常处理:完善的异常捕获和处理机制
  • ✅ AJAX响应:针对API请求的标准化JSON响应
  • ✅ 错误页面:支持自定义拦截页面
  • ✅ 状态码映射:不同安全事件返回相应的HTTP状态码
  • ✅ API模式:针对API请求的响应优化

1️⃣3️⃣ 自定义扩展

  • ✅ 自定义处理:支持注入自定义安全检查逻辑
  • ✅ 黑白名单处理:可自定义黑白名单检查逻辑
  • ✅ 安全警报:支持自定义安全警报发送机制(邮件、钉钉、Slack等)
  • ✅ 规则引擎:支持自定义检测规则和威胁评分

1️⃣4️⃣ 防御层管理

  • ✅ 分层防护:14个防御层可独立开关
  • ✅ 灵活配置:可独立控制IP检查、方法检查、内容检查等各个防护模块
  • ✅ 按序执行:防御层按配置顺序依次执行

1️⃣5️⃣ 其他特性

  • ✅ 配置热重载:配置修改立即生效,无需重启应用
  • ✅ 代理支持:支持配置信任的代理服务器
  • ✅ 性能监控:监控请求时间、内存使用、检测层耗时
  • ✅ 安全审计:安全事件记录和威胁趋势分析

1️⃣6️⃣ 配置管理

  • ✅ 环境变量覆盖:支持通过环境变量动态调整配置
  • ✅ 动态配置源:支持使用类方法、闭包、数组等多种配置方式
  • ✅ 完整类型提示:所有配置项都有明确的类型定义和默认值
  • ✅ 中文注释:所有配置项都有详细的中文注释和说明

🎯 核心架构

┌─────────────────────────────────────────────────────────┐
│                   HTTP Request                          │
└────────────────────────┬────────────────────────────────┘
                     │
                     ▼
┌──────────────────────────────────────────────────────────┐
│              SecurityMiddleware                          │
│  ┌────────────────────────────────────────────────────┐  │
│  │  配置热重载                                          │  │
│  └────────────────────────────────────────────────────┘  │
│  ┌────────────────────────────────────────────────────┐  │
│  │  14层防御检查(按顺序执行)                            │  │
│  │  01. IP白名单检查                                    │  │
│  │  02. IP黑名单检查                                    │  │
│  │  03. HTTP方法检查                                    │  │
│  │  04. User-Agent检查                                 │  │
│  │  05. 请求头检查                                      │  │
│  │  06. URL检查(含白名单)                              │  │
│  │  07. 文件上传检查                                    │  │
│  │  08. 请求体检查                                      │  │
│  │  09. 异常参数检查                                    │  │
│  │  10. 速率限制检查                                    │  │
│  │  11. SQL注入检查                                    │  │
│  │  12. XSS攻击检查                                    │  │
│  │  13. 命令注入检查                                    │  │
│  │  14. 自定义规则检查                                  │  │
│  └────────────────────────────────────────────────────┘  │
│  ┌────────────────────────────────────────────────────┐  │
│  │  异常保护与降级                                      │  │
│  │  - 递归检测                                         │  │
│  │  - 异常捕获                                         │  │
│  │  - 降级放行                                         │  │
│  └────────────────────────────────────────────────────┘  │
└────────────────────────┬─────────────────────────────────┘
                         │
               ┌─────────┴─────────┐
               │                   │
               ▼                   ▼
             [拦截]              [通过]
               │                   │
               ▼                   ▼
       ┌──────────────┐    ┌──────────────┐
       │  拦截响应      │   │   继续处理     │
       │ (JSON/HTML)  │    │  下一个中间件  │
       └──────────────┘    └──────────────┘

💡 使用示例

全局防护(推荐)

// config/security.php
'enabled' => true,
'enabled_type' => 'global',

// 发布配置后无需任何代码修改,全局自动防护

路由级防护

// config/security.php
'enabled_type' => 'route',

// 在路由中添加中间件
Route::middleware(['security'])->group(function () {
    Route::get('/api/users', [UserController::class, 'index']);
});

自定义白名单

// config/security.php
'url_whitelist_paths' => [
    // 简单格式
    'robots.txt',
    'favicon.ico',

    // 高级格式(支持方法限制和级别控制)
    [
        'path' => 'api/health',
        'methods' => ['GET'],
        'level' => 'low'  // 保留必要的检查
    ],
    [
        'path' => 'api/status',
        'methods' => ['GET'],
        'level' => 'medium'
    ],
],

自定义规则

// config/security.php
'rule_engine' => [
    'custom_rules' => [
        [
            'id' => 'custom_001',
            'name' => '自定义SQL注入检测',
            'pattern' => '/UNION\s+ALL\s+SELECT/i',
            'severity' => 'critical',
            'action' => 'block',
        ],
    ],
],

自定义警报

// app/Services/SecurityAlarmHandler.php
class SecurityAlarmHandler
{
    public static function send(array $alertData): void
    {
        // 发送邮件
        Mail::to('security@example.com')->send(new SecurityAlert($alertData));

        // 发送钉钉
        DingTalk::send($alertData);
    }
}

// config/security.php
'alarm_handler' => [SecurityAlarmHandler::class, 'send'],

🔧 性能优化

缓存配置

'enable_pattern_cache' => true,   // 正则表达式缓存
'enable_ip_cache' => true,        // IP缓存
'cache_ttl' => 3600,            // 缓存1小时

性能监控

// 获取安全统计信息
$middleware = app(SecurityMiddleware::class);
$stats = $middleware->getSecurityStats();

// 输出
// [
//     'detection_stats' => [
//         'total_requests' => 10000,
//         'blocked_requests' => 150,
//         'start_time' => 1234567890,
//         'end_time' => 1234567900,
//     ],
//     'rate_limits' => [...],
//     'recent_errors' => [...],
// ]

📋 配置参考

生产环境推荐配置

'enabled' => true,
'enabled_type' => 'global',
'log_level' => 'warning',
'enable_debug_logging' => false,
'block_on_exception' => true,
'enable_rate_limiting' => true,
'enable_sql_injection_detection' => true,
'enable_xss_detection' => true,
'enable_command_injection_detection' => true,
'ip_auto_detection' => [
    'enabled' => true,
    'blacklist_threshold' => 80.0,
    'adaptive_ban_duration' => true,
],

开发环境推荐配置

'enabled' => true,
'enabled_type' => 'global',
'log_level' => 'debug',
'enable_debug_logging' => true,
'block_on_exception' => false,

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License

📞 联系方式

⭐ 如果这个项目对你有帮助,请给它一个 Star!