返回文章列表
Web安全
API安全实战:从信息泄露到越权访问
2026-09-251834 次阅读13 分钟阅读
API安全现状
随着微服务架构的普及,API已成为应用间通信的主要方式,同时也是攻击者关注的重点目标。
常见漏洞类型
1. 认证缺陷
#### JWT Token伪造
python
# 不安全的JWT验证 import jwt
token = request.headers.get("Authorization") payload = jwt.decode(token, algorithms=["HS256", "none"]) # 危险!
攻击者可以将算法改为"none"绕过签名验证:
python
import jwt伪造token
payload = {"user": "admin", "role": "superuser"}
fake_token = jwt.encode(payload, "", algorithm="none")
#### API Key泄露
- 硬编码在前端代码中
- 暴露在Git仓库
- 日志中记录敏感信息
2. 越权访问
#### 水平越权
text
GET /api/user/123/profile # 正常用户访问自己的资料
GET /api/user/124/profile # 修改ID访问他人资料
#### 垂直越权
text
POST /api/admin/users/delete # 普通用户调用管理员接口
3. 信息泄露
#### 错误信息泄露
json
{
"error": "Database error: SQLSTATE[42S02]: Base table or view 'users' not found"
}
#### 敏感数据暴露
json
{
"user": {
"id": 123,
"name": "John",
"password_hash": "$2b$12$...", // 不应返回
"api_key": "sk-xxx" // 不应返回
}
}
防御方案
1. 认证安全
- 使用强签名算法(RS256/ES256)
- 设置合理的Token过期时间
- 实施Refresh Token机制
- API Key使用环境变量管理
2. 授权控制
- 实施RBAC/ABAC权限模型
- 服务端验证用户身份和资源归属
- 使用UUID替代自增ID
3. 数据安全
- 统一错误响应格式
- 敏感字段脱敏处理
- 实施API响应白名单
4. 流量控制
- 实施Rate Limiting
- 请求签名验证
- 部署API网关
安全测试工具
- Burp Suite Professional
- OWASP ZAP
- Postman + Newman
- API Security Testing Framework
#api-security#python#burpsuite