日常安全编码自查清单
安全编码代码审计开发实践
日常安全编码自查清单
这是一份平时写代码、做代码审计时常用的检查清单,随手记录下来方便复用。
输入与输出
- 所有外部输入是否都经过校验(长度、类型、格式)?
- 输出到 HTML/SQL/Shell 等上下文时是否做了对应的转义或参数化?
- 文件上传是否校验了类型、大小,并避免直接暴露原始路径?
身份与会话
- 密码是否使用了合适的哈希算法(如 bcrypt/argon2)而非明文或简单哈希?
- 会话令牌是否设置了合理的过期时间与刷新机制?
- 是否对关键操作增加了二次验证(如敏感设置变更)?
权限控制
- 是否在服务端而不仅仅是前端做了权限校验?
- 是否存在"水平越权"(同角色访问他人数据)的可能?
- 管理接口是否有独立的鉴权和审计日志?
依赖与配置
- 第三方依赖是否有已知高危漏洞(可用 SCA 工具定期扫描)?
- 生产环境是否关闭了调试模式、详细报错信息?
- 密钥、Token 等敏感信息是否从代码中剥离,交由密钥管理服务处理?
小结
清单不是为了"打勾了事",而是为了在写代码的当下就养成安全意识。后续会持续补充新的条目。