🔐 OWASP API Security Top 10 整改

基于 OWASP API Security Top 10 (2023) 的安全合规自查与系统性整改方案

3
已完成
4
部分完成
3
待实施

📋 1. 自查总览

# 漏洞类型 TOENK状态 整改方案 优先级
API1 对象级授权失效 (BOLA) 部分 强化对象级授权检查,实施资源拥有权验证 🔴 P0
API2 认证失效 部分 实施JWT+ Refresh Token,完善会话管理 🔴 P0
API3 过度数据暴露 待实施 限制API响应字段,实施数据最小化 🔴 P0
API4 资源消耗与限速 已完成 已配置API速率限制和并发控制 🟢 P2
API5 功能级授权失效 已完成 管理员/用户角色分离,路由权限已控制 🟢 P2
API6 批量分配 待实施 实施输入白名单,防止属性批量覆盖 🔴 P0
API7 安全配置错误 部分 持续加固Nginx/TLS/HTTP头配置 🟡 P1
API8 注入 部分 WAF+输入校验+参数化查询 🟡 P1
API9 资产管理不当 待实施 建立完整API清单,停用过时端点 🟡 P1
API10 日志与监控不足 部分 加强异常检测和告警覆盖 🟡 P1

🔍 2. 逐项整改方案

API1: 对象级授权失效(BOLA)部分完成

现状:New-API内置基本的用户资源隔离,但缺少细粒度的对象级授权检查。不同用户的API Key可以访问各自资源,但需要确保用户只能操作属于自己的数据对象。

整改步骤:

预计工时:2-3天

API2: 认证失效部分完成

现状:当前使用Bearer Token(API Key)方式认证,Token不会过期,存在长期泄露风险。缺少Refresh Token机制和完善的会话生命周期管理。

整改步骤:

预计工时:3-5天

API3: 过度数据暴露待实施

现状:API响应中可能返回了比前端所需更多的字段(例如用户管理接口返回了敏感字段)。

整改步骤:

预计工时:2-3天

API4: 资源消耗与限速已完成 ✅

现状:New-API内置速率限制功能,已按用户等级配置调用频率上限(标准用户60 RPM,高级用户120 RPM)。

已验证:速率限制中间件正常工作,超出限制返回429 Too Many Requests。并发连接数已限制为每用户10个并发。

持续优化:增加基于IP的全局速率限制,防止单IP多账户绕过;实施令牌桶算法替代固定窗口算法,支持突发场景。

API5: 功能级授权失效已完成 ✅

现状:New-API天然支持管理员/用户角色分离。管理员后台路由(/api/* 管理端)和用户路由(/v1/* API端)已通过Nginx和New-API双重控制。

已验证:管理员Token(管理Token f44c565c...)和用户API Key分离。普通用户无法访问管理接口。

API6: 批量分配(Mass Assignment)待实施

现状:用户注册/更新接口可能存在批量分配漏洞,攻击者可以通过请求体覆盖未公开的字段。

整改步骤:

预计工时:1-2天

API7: 安全配置错误部分完成

现状:已配置TLS 1.3、HSTS、安全HTTP头等基础防护,但缺少自动化配置检查机制。

整改步骤:

预计工时:1天

API8: 注入部分完成

现状:系统使用SQLite数据库。New-API已内置基本的输入转义,但未实施参数化查询的统一框架。Nginx层配置了基本WAF规则。

整改步骤:

预计工时:2-3天

API9: 资产管理不当待实施

现状:缺少系统化的API端点和版本清单文档。部分内部管理端点可能暴露在外。

整改步骤:

预计工时:2天

API10: 日志与监控不足部分完成

现状:系统已有基础日志(Nginx access log + New-API 调用日志),但缺少集中式日志分析和异常行为检测。

整改步骤:

预计工时:3-5天

📡 3. API资产清单

以下为TOENK API所有公开/内部端点清单,用于安全审计和资产盘点:

3.1 公开API端点

方法路径认证说明
GET/api/status不需要系统状态查询
GET/api/setup不需要安装状态检查
POST/api/user/login不需要用户登录
POST/api/user/register不需要用户注册
POST/v1/chat/completions需要Token模型调用(核心API)
GET/v1/models需要Token模型列表查询

3.2 管理端API(内部)

方法路径认证说明
GET/api/Admin Token管理面板数据
GET/api/user/Admin Token用户列表/管理
GET/api/token/Admin TokenAPI令牌管理
GET/api/log/Admin Token日志查询

3.3 静态资源端点

GET /home · GET /docs/ · GET /status.html · GET /favicon.svg · GET /robots.txt · GET /sitemap.xml

3.4 SPA前端路由(Nginx → 后端)

GET / · /sign-in · /sign-up · /dashboard · /profile · /keys · /about

🗺️ 4. 整改路线图

阶段时间任务优先级
Phase 1
紧急修复
第1周 API6 批量分配 — 输入白名单
API9 API资产清单建立
API7 安全配置加固(HTTP头/CSP)
P0
Phase 2
核心加固
第2-3周 API1 BOLA — 对象级授权中间件
API2 JWT+Refresh Token
API3 响应字段控制
P0
Phase 3
纵深防御
第4周 API8 ModSecurity WAF
API10 日志集中化+异常检测
定期扫描+渗透测试
P1
Phase 4
持续优化
第5-6周 API4 限速算法升级(令牌桶)
安全日志月审机制
自动化安全扫描流水线
P1
📊 总体估计:首次完整整改预计需要 6周,其中前3周完成所有P0(高优先级)项。整改完成后可进入持续监控和定期审计阶段。