用途
API Security Hardening 用于对 REST API 进行安全加固,通过多层防护抵御常见漏洞。它面向生产环境 API、安全审计以及纵深防御(defense-in-depth)场景,帮助开发者在认证、限流、输入验证和响应头等方面建立系统化的安全措施。
主要能力
该技能提供以下安全能力:
- 安全中间件栈(Express):使用 helmet、express-rate-limit、express-mongo-sanitize 等中间件构建基础防护。示例中对
/api/路径设置每 15 分钟最多 100 次请求的限流,对/api/auth/路径设置每 15 分钟最多 5 次请求的更严格限流。 - 输入验证:使用 express-validator 对请求体进行校验,例如邮箱格式与规范化、密码长度及大小写和数字要求、名称长度限制与 HTML 转义。资料特别指出 express-validator v7+ 已移除内置的
.escape()清理器,应使用基于escape-html的customSanitizer进行 HTML 转义。 - 安全响应头:设置 Content-Security-Policy、X-Frame-Options、X-Content-Type-Options、Strict-Transport-Security、X-XSS-Protection 等头部。
- 安全清单:提供一份检查项,包括全站 HTTPS、所有受保护路由启用认证、输入验证与清理、启用速率限制、配置安全头、CORS 限制为允许的来源、生产环境错误不返回堆栈跟踪、启用审计日志、定期更新依赖。
- 附加实现参考:资料提到
references/python-nginx.md,其中包含 Python FastAPI 安全中间件、带密码规则的 Pydantic 输入验证、Nginx SSL/TLS 与安全头配置,以及 HTTP 参数污染(HTTP Parameter Pollution)防护。
使用方式
该技能以代码示例和清单形式提供指导。开发者可将示例中的中间件栈、验证规则和安全头设置集成到自己的 Express 应用中。资料还特别提醒:对于输入清理,应参考 xss-prevention 技能,不要使用已废弃的 xss-clean 包(自 2018 年起不再维护,其自身 README 也建议迁移)。
适用场景
- 生产环境 REST API 的安全加固
- 安全审计与合规检查
- 构建纵深防御体系
- 需要认证、限流、输入验证和安全头的 API 项目
限制与注意事项
资料中列出的“Never Do”原则包括:不要未经验证就信任用户输入、不要在生产环境返回详细错误、不要在代码中存储密钥、不要用 GET 执行改变状态的操作、不要为图方便而禁用安全措施。
关于该技能的安装方式、具体收费、支持平台、实际效果等事实,资料中暂未提供。