私有内网环境下是否需将application.properties加入.gitignore?
私有内网Git仓库里的application.properties该怎么处理?
先直接给结论:哪怕是内网私有仓库,优先建议把application.properties加入.gitignore,用环境变量或者内网密钥管理器单独存敏感数据。下面给你掰扯清楚两种选择的利弊:
一、硬要把配置文件留在仓库里的情况
只有当你的团队满足这些极端条件时,才可以考虑这么做:
- 团队就2-3个核心骨干,人员几乎不会变动
- 内网完全封死,没有对外出口,也没人能把代码拷出内网
- 项目生命周期极短,做完就归档
但就算满足这些,也得担着这些风险:
- 万一有人离职,权限没及时收回,或者他之前偷偷把代码拷走了,敏感信息直接泄露
- 私有仓库权限配置也可能手抖加错人,或者权限范围开得太大,不该看的人看到了凭证
- 很多公司内部安全审计不管你是不是内网,只要代码仓库存敏感数据就不合格,到时候挨骂整改的是你
- 开发、测试、生产环境的配置混在一个文件里,部署时很容易搞错,比如把测试库的凭证用到生产上
二、把配置文件加入.gitignore的好处
这才是行业通用的最佳实践,好处不止安全:
- 安全合规:敏感数据和代码彻底分开,就算代码被误传到外面(虽然内网概率低,但不怕一万就怕万一),也不会带出来凭证
- 环境隔离:开发、测试、生产各用各的配置,再也不会出现把开发环境的配置部署到生产的低级错误
- 权限更细:密钥管理器可以单独设权限,比如只有运维能改生产环境的数据库密码,开发只拿得到开发环境的配置,权责分明
- 人员变动更省心:员工离职,只需要把密钥管理器的权限收回就行,不用盯着Git仓库的权限删来删去,也不用担心他带走代码里的敏感信息
- 留痕好排查:密钥管理器一般都有操作日志,谁改了密码、什么时候改的,查问题一查一个准
最后再啰嗦两句
没有绝对安全的环境,哪怕是内网,也可能出各种幺蛾子——比如有人不小心把代码拷到私人电脑上带出公司,或者权限配置错了没发现。所以哪怕现在觉得环境安全,也尽量按最佳实践来做,省得后面出事补锅。
如果实在嫌麻烦暂时不想改,那一定要做好这几件事:定期检查Git仓库的权限,离职人员立刻删权限;严禁把代码拷出内网;每隔一段时间换一次数据库密码这类敏感信息。
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

