✦ 全域防护
安全中心
多层安全防护体系,覆盖认证鉴权、攻击检测、IP 黑名单、请求过滤、Nginx 日志实时扫描,全方位保障平台安全运行。
🛡️
攻击检测引擎
灵活的规则引擎,支持正则与关键词两种匹配模式,对请求 URI 进行恶意特征识别与拦截。
📋
黑名单管理
动态 IP 黑名单,支持手动封禁/解封,自动检测恶意 IP 并加入黑名单,支持定时解封。
🔍
Nginx 日志扫描
定期扫描 Nginx 访问日志,通过攻击规则引擎自动检测恶意请求特征,支持自动封禁 IP。
📊
攻击日志
完整的攻击事件记录与查询,包括攻击时间、来源 IP、攻击类型、请求路径,支持导出分析。
安全架构
系统采用多层安全防护架构,从网络层到应用层逐层过滤:
- Nginx 层: 在 Nginx 层面进行基础的请求过滤和速率限制
- 过滤器链: CORS 过滤器 → 黑名单过滤器(BlacklistFilter)→ Body 检查过滤器(BodyInspectorFilter)→ JWT 认证过滤器
- 攻击规则引擎:AttackRuleEngine 在应用层对请求 URI 进行恶意特征匹配
- Nginx 日志扫描:NginxScanService 定时扫描 Nginx 日志文件,识别攻击行为并自动封禁
- 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)格式。
自动封禁: Nginx 日志扫描发现恶意请求后自动封禁来源 IP。
定时解封: 支持设置封禁到期时间,到期自动解封。
批量操作: 支持批量导入 IP 黑名单,支持 IP 段(CIDR)格式。
请求过滤器
两个核心过滤器在请求到达 Controller 之前进行处理:
BlacklistFilter: 检查请求 IP 是否在黑名单中,若命中则直接返回 403 拒绝访问。
BodyInspectorFilter: 检查 POST 请求体的内容安全性,防止恶意数据提交。
BodyInspectorFilter: 检查 POST 请求体的内容安全性,防止恶意数据提交。
Nginx 安全扫描
Nginx 安全扫描是安全中心的核心能力之一,通过定时任务(NginxSecurityQuartz)周期性执行:
- 定时从 Nginx 访问日志中读取最近的请求记录
- 使用 AttackRuleEngine 对每条请求进行规则匹配
- 匹配到攻击规则的请求记录到攻击日志(AttackLog)
- 对于高频攻击源 IP,自动加入黑名单(可配置阈值)
- 生成安全报告,展示近期攻击趋势和 Top 攻击来源
认证与授权
平台基于 Spring Security + JWT 构建认证授权体系:
| 能力 | 说明 |
|---|---|
| JWT 认证 | 基于 JSON Web Token 的无状态认证,支持 Token 刷新与失效 |
| RBAC 权限 | 用户 → 角色 → 权限 三层模型,精细化接口级权限控制 |
| @PreAuthorize | 基于 Spring Security 注解的方法级权限校验 |
| 数据权限 | 行级数据隔离,不同角色看到不同范围的数据 |
| 匿名访问 | 支持通过 @Anonymous 注解标记无需认证的接口 |
建议: 定期检查和更新攻击检测规则,以应对新型安全威胁。生产环境建议开启 Nginx 日志自动扫描功能。