关于 security-best-practices
面向后端服务、微服务及处理敏感数据或外部输入的安全开发规范。内容涵盖输入校验、权限控制、弹性机制、安全配置及常见 Web 和 API 风险。
主要功能
- 01输入校验与清理
- 02身份认证与授权
- 03最小权限与访问审计
- 04重试、超时和限流
- 05安全配置与密钥管理
- 06SQL 注入、XSS 和 CSRF 防护
适用场景
- 01检查后端安全实践
- 02保护 API 免遭滥用
- 03管理凭据和敏感数据
- 04核查常见 Web 攻击防护
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill security-best-practices安装后在 Claude Code 中输入/security-best-practices确认已加载。
详细介绍
安全最佳实践
开发后端服务、微服务以及任何处理敏感数据或外部输入的代码时,请遵循以下安全原则。
输入验证与清理
- 严格执行输入验证与清理,尤其是针对来自外部来源的输入
- 在应用程序边界验证所有用户输入
- 验证输入时优先使用允许列表,而非拒绝列表
- 存储或显示数据前先进行清理,以防止注入攻击
- 实施严格的类型检查和架构验证
身份验证与授权
- 为 JWT、Cookie 和配置设置采用安全默认值
- 实施适当的令牌过期和刷新机制
- 使用环境变量或密钥管理服务安全地存储机密
- 切勿在源代码中硬编码凭据或 API 密钥
- 使用安全的密码哈希算法(bcrypt、Argon2)
权限边界
- 通过明确的权限边界隔离敏感操作
- 在整个系统中贯彻最小权限原则
- 在适当情况下实施基于角色的访问控制(RBAC)
- 审计并记录对敏感资源的访问
- 为不同组件使用独立的服务账户
弹性与防护
- 对所有外部调用实施重试、指数退避和超时机制
- 部署熔断器和速率限制,以保护服务
- 考虑采用分布式速率限制,以防止跨服务滥用(例如使用 Redis)
- 实施请求节流,以防止拒绝服务攻击
- 使用并设置适当限制的连接池
安全配置
- 所有网络通信均使用 HTTPS/TLS
- 配置安全的 HTTP 标头(HSTS、CSP、X-Frame-Options)
- 在生产环境中禁用详细错误消息
- 保持依赖项更新,并扫描漏洞
- 使用安全默认值,并确保故障时仍能保持安全
错误处理
- 在整个应用程序中实施全面的错误处理
- 切勿向最终用户暴露堆栈跟踪或内部细节
- 以适当的详细程度记录安全相关事件
- 在保障安全的同时,适当传递上下文以便调试
- 妥善处理身份验证和授权失败
机密管理
- 使用环境变量或专用的机密管理器
- 定期轮换凭据和密钥
- 实施恰当的密钥管理实践
- 避免记录敏感信息
- 对敏感数据存储采用静态加密
SQL 注入防护
- 使用参数化查询或预处理语句
- 切勿将用户输入拼接到 SQL 查询中
- 使用能够自动转义值的 ORM 功能
- 验证并清理所有数据库输入
- 限制数据库用户权限
跨站脚本(XSS)防护
- 对所有在 HTML 中呈现的输出进行转义
- 使用内容安全策略标头
- 显示用户生成的内容前先进行清理
- 使用框架提供的转义函数
- 避免使用 innerHTML 等危险 API
跨站请求伪造(CSRF)防护
- 对会改变状态的操作实施 CSRF 令牌
- 验证 origin 和 referer 标头
- 使用 SameSite Cookie 属性
- 对敏感操作要求重新进行身份验证
- 实施恰当的会话管理
API 安全
- 实施 API 身份验证(JWT、API 密钥、OAuth)
- 使用速率限制以防止滥用
- 验证请求内容类型
- 实施请求大小限制
- 记录 API 访问以供审计
依赖项安全
- 定期审计依赖项,检查是否存在漏洞
- 使用锁定文件确保版本一致
- 移除未使用的依赖项
- 关注技术栈的安全公告
- 在 CI/CD 中实施自动化漏洞扫描
评论
支持 Markdown