✦ 全域防护

安全中心

多层安全防护体系,覆盖认证鉴权、攻击检测、IP 黑名单、请求过滤、Nginx 日志实时扫描,全方位保障平台安全运行。

🛡️

攻击检测引擎

灵活的规则引擎,支持正则与关键词两种匹配模式,对请求 URI 进行恶意特征识别与拦截。

📋

黑名单管理

动态 IP 黑名单,支持手动封禁/解封,自动检测恶意 IP 并加入黑名单,支持定时解封。

🔍

Nginx 日志扫描

定期扫描 Nginx 访问日志,通过攻击规则引擎自动检测恶意请求特征,支持自动封禁 IP。

📊

攻击日志

完整的攻击事件记录与查询,包括攻击时间、来源 IP、攻击类型、请求路径,支持导出分析。

安全架构

系统采用多层安全防护架构,从网络层到应用层逐层过滤:

  1. Nginx 层: 在 Nginx 层面进行基础的请求过滤和速率限制
  2. 过滤器链: CORS 过滤器 → 黑名单过滤器(BlacklistFilter)→ Body 检查过滤器(BodyInspectorFilter)→ JWT 认证过滤器
  3. 攻击规则引擎:AttackRuleEngine 在应用层对请求 URI 进行恶意特征匹配
  4. Nginx 日志扫描:NginxScanService 定时扫描 Nginx 日志文件,识别攻击行为并自动封禁
  5. Spring Security: 基于 JWT 的身份认证与权限控制,RBAC 权限模型

核心功能

攻击检测规则

规则类型说明示例
正则匹配(REGEX)使用正则表达式匹配请求 URI/(etc/passwd|\.env|\.git/config)
关键词匹配(KEYWORD)包含指定关键词即命中../..// admin bypass
匹配字段指定检查目标REQUEST_URI / HEADER / BODY

IP 黑名单

黑名单功能支持手动和自动两种封禁方式:

手动封禁: 在安全中心直接添加 IP 到黑名单,可设置封禁时长。
自动封禁: Nginx 日志扫描发现恶意请求后自动封禁来源 IP。
定时解封: 支持设置封禁到期时间,到期自动解封。
批量操作: 支持批量导入 IP 黑名单,支持 IP 段(CIDR)格式。

请求过滤器

两个核心过滤器在请求到达 Controller 之前进行处理:

BlacklistFilter: 检查请求 IP 是否在黑名单中,若命中则直接返回 403 拒绝访问。
BodyInspectorFilter: 检查 POST 请求体的内容安全性,防止恶意数据提交。

Nginx 安全扫描

Nginx 安全扫描是安全中心的核心能力之一,通过定时任务(NginxSecurityQuartz)周期性执行:

  1. 定时从 Nginx 访问日志中读取最近的请求记录
  2. 使用 AttackRuleEngine 对每条请求进行规则匹配
  3. 匹配到攻击规则的请求记录到攻击日志(AttackLog)
  4. 对于高频攻击源 IP,自动加入黑名单(可配置阈值)
  5. 生成安全报告,展示近期攻击趋势和 Top 攻击来源

认证与授权

平台基于 Spring Security + JWT 构建认证授权体系:

能力说明
JWT 认证基于 JSON Web Token 的无状态认证,支持 Token 刷新与失效
RBAC 权限用户 → 角色 → 权限 三层模型,精细化接口级权限控制
@PreAuthorize基于 Spring Security 注解的方法级权限校验
数据权限行级数据隔离,不同角色看到不同范围的数据
匿名访问支持通过 @Anonymous 注解标记无需认证的接口
建议: 定期检查和更新攻击检测规则,以应对新型安全威胁。生产环境建议开启 Nginx 日志自动扫描功能。