用途:面向 REST 与 GraphQL API 的综合安全防护,适用于设计新 API 端点、实现 API 认证、设置速率限制、审查 API 安全、构建公开 API 以及实现 webhook。
安全检查清单覆盖:认证(OAuth 2.0、API Key、JWT)、授权(作用域、RBAC、资源归属)、输入校验(模式校验、类型检查)、速率限制(按用户、按端点)、传输(仅 HTTPS、证书固定)、输出(不泄露敏感数据)。
主要能力与用法:文档给出多种模式的示例代码。API Key 认证中间件使用 x-api-key 请求头,采用常量时间比较防时序攻击;密钥带可识别前缀并用 crypto.randomBytes 生成,存储时使用 SHA-256 哈希,仅生成时返回一次。OAuth 2.0 令牌端点处理 authorization_code、refresh_token、client_credentials 三种授权类型,签发 15 分钟有效期的 JWT 访问令牌与随机 refresh token。请求校验使用 Joi 定义 schema,通过中间件执行,设置 abortEarly: false 与 stripUnknown: true。GraphQL 侧在 ApolloServer 中配置 graphql-depth-limit 与复杂度限制规则并接入限流插件。速率限制使用 express-rate-limit 与 Redis 存储,按标准、认证(更严格、仅计失败)、高开销操作三类设置不同窗口与上限。响应安全设置 Cache-Control: no-store、Pragma: no-cache、X-Content-Type-Options: nosniff,并过滤敏感字段。错误处理内部记录完整错误,对外仅返回安全消息与 requestId。
最佳实践:始终使用 HTTPS、所有端点校验输入、全面限流、对 API 版本化(/v1/、/v2/)、第三方访问使用 OAuth 2.0、记录安全事件、不暴露堆栈跟踪、实现分页以防数据批量导出。
限制:公开资料未说明该技能的收费方式、支持平台、版本要求或适用规模,这些信息暂未提供。