Entry № 515
硬编码机密(代码中的密钥)
硬编码机密(代码中的密钥) 是什么?
硬编码机密(代码中的密钥)把凭据、API 密钥、令牌或密码学材料直接写入源代码、配置文件或容器镜像中,极易被发现并被滥用。
硬编码机密是现代开发中最常见、危害也最严重的错误之一。它们会进入 Git 历史、容器分层、移动应用、CI 日志、公开仓库,被机器人在数分钟内扫描发现。真实案例包括把 AWS 密钥提交到 GitHub、把 Slack 令牌打进前端 bundle、把数据库密码写入 Docker 镜像等。缓解措施组合了:预防(开发者教育、pre-commit 钩子、IDE 插件、.gitignore 模式)、检测(GitHub secret scanning、Gitleaks、TruffleHog 等在仓库和 CI 中扫描)、集中化的机密管理(HashiCorp Vault、AWS Secrets Manager、Azure Key Vault、GCP Secret Manager、Kubernetes External Secrets)。一旦发现泄露,应立即轮换密钥,而不是仅从历史记录中删除。
● 示例
- 01
AWS 访问密钥被提交到公共 GitHub 仓库,在几分钟内即被滥用。
- 02
OAuth 客户端密钥被写入移动应用的二进制文件中。
● 常见问题
硬编码机密(代码中的密钥) 是什么?
把凭据、API 密钥、令牌或密码学材料直接写入源代码、配置文件或容器镜像中,极易被发现并被滥用。 它属于网络安全的 应用安全 分类。
硬编码机密(代码中的密钥) 是什么意思?
把凭据、API 密钥、令牌或密码学材料直接写入源代码、配置文件或容器镜像中,极易被发现并被滥用。
如何防御 硬编码机密(代码中的密钥)?
针对 硬编码机密(代码中的密钥) 的防御通常结合技术控制与运营实践,详见上方完整定义。
硬编码机密(代码中的密钥) 还有哪些其他名称?
常见的别称包括: 硬编码凭据, 代码中的机密泄露。