Code Review,你审查安全了吗?
代码审查通常关注:
- 代码风格
- 逻辑正确性
- 性能优化
- 可维护性
但安全呢?
代码审查中,安全审查同样重要。一个安全漏洞,可能比一个 bug 更致命。
代码审查中要关注的 8 个安全点
1. SQL 注入
检查:
- 是否使用参数化查询?
- 是否拼接用户输入到 SQL 语句?
- ORM 是否使用正确?
2. XSS 跨站脚本
检查:
- 用户输入是否被正确转义?
- 是否使用
innerHTML插入用户输入? - 是否设置了 CSP(Content Security Policy)?
3. 认证与授权
检查:
- 接口是否有认证?
- 权限检查是否正确?
- 是否存在越权访问?
4. 敏感信息泄露
检查:
- 日志是否打印了敏感信息?
- 错误信息是否泄露了内部细节?
- API 响应是否返回了不必要的字段?
5. 凭证硬编码
检查:
- 是否有密码、密钥写死在代码中?
- 是否有数据库连接字符串硬编码?
- 是否有 API Key 硬编码?
6. 文件上传
检查:
- 是否限制了上传文件类型?
- 是否限制了上传文件大小?
- 上传文件是否可被执行?
7. 加密与签名
检查:
- 是否使用了安全的加密算法?
- 是否使用了 HTTPS?
- 是否验证了签名?
8. 依赖安全
检查:
- 新增的依赖是否可信?
- 依赖是否有已知漏洞?
- 依赖的许可证是否合规?
代码审查安全清单
输入处理
- 用户输入是否校验?
- 用户输入是否转义?
- 文件上传是否安全?
认证授权
- 接口是否有认证?
- 权限是否正确?
- 是否存在越权?
数据保护
- 敏感信息是否加密?
- 凭证是否安全存储?
- 日志是否脱敏?
加密安全
- 加密算法是否安全?
- 是否使用 HTTPS?
- 签名是否验证?
依赖安全
- 新增依赖是否可信?
- 依赖是否有漏洞?
- 许可证是否合规?
一句话总结
代码审查不只是看逻辑和风格,安全同样重要。SQL注入、XSS、认证授权、敏感信息、凭证硬编码,一个都不能漏。
标签: 开发安全、代码审查、安全审计、信息安全意识