如果您发现了安全漏洞,请不要在公共 issue 中报告。请通过以下方式联系我们:
- 发送邮件至:security@example.com
- 或通过私有方式联系项目维护者
我们会尽快响应安全报告,并在修复后公开披露。
-
本地开发
- 使用
.env文件存储敏感配置 - 确保
.env文件已添加到.gitignore - 不要在代码中硬编码敏感信息
- 使用
-
生产环境
- 使用系统环境变量或容器环境变量
- 考虑使用密钥管理服务(如 AWS Secrets Manager、Azure Key Vault)
- 定期轮换密钥和令牌
-
JWT 密钥
- 生产环境必须使用强密钥(建议 32 字符以上)
- 使用随机生成器生成密钥
- 定期轮换 JWT 密钥
-
数据库认证
- 使用专用数据库用户
- 限制数据库用户权限
- 使用强密码
-
API Token
- 使用安全的随机生成器生成 token
- 实施 token 过期机制
- 监控异常访问
-
HTTPS
- 生产环境必须使用 HTTPS
- 配置 SSL/TLS 证书
- 启用 HTTP 严格传输安全 (HSTS)
-
CORS 配置
- 配置具体的允许域名,避免使用
* - 限制允许的 HTTP 方法
- 验证 Origin 头
- 配置具体的允许域名,避免使用
-
API 安全
- 实施请求频率限制
- 输入验证和清理
- 使用 CSRF 保护(如需要)
-
敏感数据处理
- 不在日志中记录敏感信息
- 对敏感数据进行加密存储
- 实施数据访问权限控制
-
用户认证
- 实施强密码策略
- 考虑多因素认证
- 安全地存储密码哈希
-
开发环境配置
- 开发环境使用的默认密钥仅供开发使用
- 不要在生产环境使用开发环境的配置
-
依赖更新
- 定期更新依赖包以修复安全漏洞
- 使用
npm audit或pnpm audit检查漏洞
在部署前请确认:
- 所有环境变量已正确配置
- 使用了强密钥和密码
- CORS 配置限制了具体域名
- 启用了 HTTPS
- 数据库访问权限正确配置
- 依赖包已更新到最新安全版本
- 日志中不包含敏感信息
如有安全相关问题,请联系:
- 邮箱:security@example.com
- 项目维护者:通过 GitHub 私信联系
我们重视项目和用户的安全,感谢您帮助我们保持项目的安全性。