用途
API Security Best Practices 是一个面向开发者的安全技能,用于在构建 API 时落实认证、授权、输入校验、限流以及针对常见漏洞的防护。它覆盖 REST、GraphQL 和 WebSocket API 的安全模式,帮助在设计、加固和审查 API 时采用一致的安全做法。
适用时机
资料列出的使用场景包括:设计新的 API 端点;加固现有 API;实现认证与授权;防御 API 攻击(如注入、DDoS 等);开展 API 安全审查;准备安全审计;实现限流与节流;在 API 中处理敏感数据。
主要能力与工作方式
该技能按五个步骤组织安全实现:
- 认证与授权:选择认证方式(JWT、OAuth 2.0、API 密钥),实现基于令牌的认证,设置基于角色的访问控制(RBAC),进行安全的会话管理,并实现多因素认证(MFA)。
- 输入校验与净化:校验所有输入数据,净化用户输入,使用参数化查询,实现请求模式校验,防止 SQL 注入、XSS 和命令注入。
- 限流与节流:按用户/IP 实现限流,设置 API 节流,配置请求配额,优雅处理限流错误,并监控可疑活动。
- 数据保护:传输中数据加密(HTTPS/TLS),静态敏感数据加密,实现正确的错误处理(避免数据泄露),净化错误消息,使用安全响应头。
- API 安全测试:测试认证与授权,执行渗透测试,检查常见漏洞(OWASP API Top 10),验证输入处理,测试限流。
示例内容
资料提供了三个示例。示例一为 JWT 认证实现,包含登录端点、令牌验证中间件、受保护路由和令牌刷新,并给出安全最佳实践清单,例如使用强 JWT 密钥(至少 256 位)、设置较短过期时间(访问令牌 1 小时)、实现刷新令牌、将刷新令牌存入数据库以便撤销、仅使用 HTTPS、不在 JWT 载荷中存放敏感数据、校验令牌的签发者与受众、为登出实现令牌黑名单。
示例二为输入校验与 SQL 注入防护,展示易受攻击的代码与修复方式:使用参数化查询、使用带正确转义的 ORM(如 Prisma)、使用 Zod 实现请求校验、使用 DOMPurify 净化输出以防 XSS,并给出校验清单,包括校验所有用户输入、使用参数化查询或 ORM、校验数据类型与范围、净化 HTML 内容、转义特殊字符、校验文件上传、使用允许列表而非阻止列表。
示例三为限流与 DDoS 防护,使用 express-rate-limit 与 Redis 存储实现通用 API 限流、认证端点严格限流、昂贵操作自定义限流、按用户等级的分层限流,并使用 Helmet 配置内容安全策略、防点击劫持、隐藏 X-Powered-By、防 MIME 嗅探、启用 HSTS,同时列出限流响应头。
适用场景
适合后端与 API 开发者在设计或加固接口时参考,也适合安全审查、审计准备和渗透测试前的自查。示例以 JavaScript/Node.js 生态为主,涉及 JWT、bcrypt、Prisma、Zod、DOMPurify、express-rate-limit、Redis、Helmet 等。
限制
资料未提供该技能的安装方式、运行命令、收费或价格信息、支持平台、具体效果数据,也未提供官方文档或版本信息,这些内容暂未提供。