SuperAPI AI 工具集

api-security-best-practices

编程与开发

查看项目

更新于 10-16 05:44

技能介绍

用途:指导开发者在设计新接口、加固既有 API、实现认证授权、防范注入与 DDoS 类攻击、开展 API 安全审查或准备安全审计时,落地安全设计模式。覆盖 REST、GraphQL 与 WebSocket API。

主要能力(按五步展开):

  1. 认证与授权:选择 JWT、OAuth 2.0 或 API Key,实现基于令牌的认证、RBAC 角色访问控制、会话管理、多因素认证(MFA)。
  2. 输入校验与净化:校验全部输入、净化用户输入、使用参数化查询、请求 schema 校验,防御 SQL 注入、XSS 与命令注入。
  3. 限流与节流:按用户/IP 限流、API 节流、请求配额、优雅处理 429 错误、监控可疑活动。
  4. 数据保护:传输加密(HTTPS/TLS)、静态敏感数据加密、避免泄露的错误处理、错误信息脱敏、安全响应头。
  5. 安全测试:验证认证授权、渗透测试、对照 OWASP API Top 10 检查、校验输入处理、测试限流。

必要用法(示例中出现的做法,命令按原文):

  • JWT:签发时设置 expiresIn: '1h'、issuer、audience,使用 process.env.JWT_SECRET;刷新令牌存入数据库以便吊销;中间件从 Authorization 头取 "Bearer TOKEN" 并用 jwt.verify 校验。
  • 密码:使用 bcrypt,校验用 bcrypt.compare,哈希建议 salt rounds >= 10。
  • 输入校验:使用 zod 定义 schema(如邮箱格式、密码长度≥8 且含大小写与数字),配 validateRequest 中间件返回 400。
  • 防注入:'SELECT id, email, name FROM users WHERE id = $1' 参数化查询,或使用 Prisma ORM 的 where/select 并避免返回 passwordHash。
  • XSS 净化:DOMPurify.sanitize 并限制 ALLOWED_TAGS、ALLOWED_ATTR。
  • 限流:express-rate-limit 配合 rate-limit-redis 与 ioredis;示例 apiLimiter windowMs 15 分钟 max 100,authLimiter max 5 且 skipSuccessfulRequests: true,可做分层限流并返回 X-RateLimit-* 头。
  • 响应头:helmet 配置 CSP、frameguard deny、hidePoweredBy、noSniff、HSTS。

适用场景:新端点设计、既有 API 加固、认证授权实现、限流配额设置、敏感数据处理、安全评审与审计准备。

限制:资料未提供具体安装命令、版本要求、性能基准、支持语言范围、收费或许可信息;示例以 JavaScript/Node.js 为主,其他技术栈需自行对照适配。以上仅为安全实践指导,不保证消除全部风险。