5.3.4 初学者的安全检查清单
经过本节学习,你将获得:
- 一份可立即使用的安全检查清单
- 不同场景下的检查要点
- 快速检查的实用技巧
提交代码前检查清单
每次准备将代码上传到 GitHub 或其他平台之前,请检查:
- [ ] 没有硬编码密钥:代码里没有任何真实的密码、API 密钥或 Token
- [ ] .env 已被忽略:
.env文件已加入.gitignore - [ ] 没有敏感日志:
console.log或调试语句中没有输出敏感信息 - [ ] 没有测试数据泄露:测试代码中没有使用真实的用户数据或密钥
部署前检查清单
在将项目部署到互联网之前,额外检查:
- [ ] 环境变量已配置:部署平台上已正确设置所有需要的环境变量
- [ ] 调试模式已关闭:生产环境没有开启 debug 模式
- [ ] 错误信息已简化:错误页面不会暴露详细的技术信息
- [ ] HTTPS 已启用:网站使用 HTTPS 而非 HTTP
定期检查清单
每隔一段时间(比如每月),回顾一下:
- [ ] 密钥是否需要轮换:长期使用的密钥是否应该更换
- [ ] 依赖是否需要更新:项目使用的库是否有安全更新
- [ ] 权限是否合理:API 密钥的权限是否只包含必要的范围
快速检查技巧
方法一:搜索敏感关键词
在你的代码编辑器中,使用搜索功能查找这些关键词:
password
secret
api_key
apiKey
token
sk-
pk-
AKIA
-----BEGIN如果搜索结果中出现了看起来像真实密钥的内容(而不是 process.env.XXX 这样的引用),就需要处理。
方法二:检查即将提交的文件
如果你使用 Git,在提交前运行:
bash
git diff --cached这会显示你即将提交的所有更改。快速扫一眼,确认没有敏感信息。
方法三:检查 .gitignore 是否生效
确认敏感文件确实被忽略了:
bash
git status如果 .env 文件出现在列表中,说明它没有被正确忽略。
常见问题处理
问题:我已经不小心提交了 .env 文件
解决步骤:
- 首先,立即更换所有泄露的密钥(这是最重要的)
- 将
.env加入.gitignore - 从 Git 追踪中移除该文件(但不删除本地文件):bash
git rm --cached .env - 提交这个更改:bash
git commit -m "移除敏感文件"
重要提醒
即使你删除了文件,Git 历史中仍然保留着它。如果仓库是公开的,密钥已经泄露。
必须更换密钥,没有例外。
问题:我不确定某个字符串是不是密钥
判断标准:
| 特征 | 可能是密钥 | 可能不是密钥 |
|---|---|---|
| 长度 | 较长(20+ 字符) | 较短 |
| 内容 | 看起来随机的字母数字 | 有明显含义的单词 |
| 前缀 | 有特定前缀如 sk-、AKIA | 普通前缀 |
| 位置 | 赋值给类似 API_KEY 的变量 | 普通变量 |
如果还是不确定,宁可当作密钥处理。
养成习惯
安全检查不需要花很多时间。一旦养成习惯,每次提交前花 30 秒扫一眼,就能避免大部分问题。
一个好习惯
每次看到 AI 生成的代码中有类似密钥的长字符串,第一反应应该是:"这是真实密钥还是占位符?"
