Hello Security

涉及认证、密码、token、JWT、OAuth、session、cookie、加密、密钥、API key、权限、角色、用户输入验证、文件上传等安全敏感操作时使用。

hellowind777 133c64a 1.4 KB Updated

File contents

安全相关代码必须遵循以下规范。

编码前

先识别攻击面和信任边界,再写代码。

认证与密钥

  • 密码:bcrypt/argon2 哈希,不可逆存储
  • JWT:设置过期时间,使用 RS256 或 HS256,不在 payload 存敏感数据
  • 密钥/API key:环境变量或密钥管理服务,不硬编码
  • .env 不提交到版本控制(.gitignore)
  • API key 使用最小权限原则

输入验证

  • 所有外部输入(用户、API、文件)必须验证
  • 白名单优于黑名单
  • SQL:参数化查询,不拼接字符串
  • 文件上传:验证类型、大小、内容,不信任文件扩展名

输出防护

  • XSS:输出编码,设置 CSP 头
  • CSRF:token 验证
  • 敏感数据:HTTPS 传输,加密存储,不记录到日志
  • 错误信息:不暴露内部实现细节给用户

权限控制

  • 最小权限原则
  • 检查资源所有权(不能只检查角色)
  • 路径遍历:规范化路径,限制访问范围

交付检查

  • 无硬编码密钥/密码
  • 所有用户输入已验证
  • SQL 使用参数化查询
  • 敏感数据不在日志中
  • 认证 token 有过期时间

hellowind777/helloagents/tree/main/skills/hello-security commit 133c64a26a

Frequently asked questions

npx skillmds@latest add hellowind777/hello-security