SuperAPI AI 工具集

golang-security

编程与开发

查看项目

更新于 10-15 22:13

技能介绍

用途:为 Go 后端服务提供安全编码规范,抵御常见漏洞,覆盖输入处理、密码学、数据库查询、认证与密钥管理等环节,优先级为 P0(关键)。

主要能力:

  1. 输入校验:使用 go-playground/validator 或 google/go-cmp 做结构体校验,处理前对用户输入做净化,HTML 净化使用 bluemonday。
  2. 密码学:安全敏感操作(令牌、密钥、IV)必须使用 crypto/rand,禁止 math/rand;密码哈希使用 Argon2id(golang.org/x/crypto/argon2),推荐参数 time=1、memory=64MB、threads=4,不使用 bcrypt、MD5、SHA1;加密使用 crypto/aes 的 GCM 模式做认证加密。
  3. SQL 注入防护:始终使用 $1、$2 占位符配合 database/sql 或 ORM(GORM、sqlx),禁止用 fmt.Sprintf() 拼接查询。
  4. 认证:JWT 使用 golang-jwt/jwt v5+,强制 RS256(首选)或 HS256;多服务认证拒绝 none 与对称算法,校验 alg、iss、aud、exp 声明;会话使用安全、httpOnly 的 Cookie 配合 gorilla/sessions。
  5. 密钥管理:通过 godotenv 或 Kubernetes secrets 加载密钥,禁止将 API key、密码、令牌提交到 Git。

反模式:不要为安全目的使用可预测的 math/rand;不要用 fmt.Sprintf() 构造 SQL;密码不要用 bcrypt 或 MD5/SHA1;生产环境不要向客户端泄露错误堆栈。

限制:资料未提供具体安装命令、版本约束以外的配置细节、授权许可信息或完整示例,使用方式需结合上述指引在 Go 项目中落地。