项目在 git 里怎样合理的保存配置文件(服务器密码等敏感内容)

 咪了眼的小迷糊 发布于 2022-10-25 05:28

服务器配置文件,会保存诸如数据库用户名、密码等敏感信息。
在多人开发过程中,这些敏感文件如果提交在版本控制系统里,会造成隐患。
有没有好的处理方法呢?

2 个回答
  • 这个加在忽略文件列表中 ---

    2022-10-26 14:18 回答
  • 办法其实很多,有两种较常用。

    第一种是配置文件不提交真实内容,只提交一个模板文件。每个开发者克隆之后按照自己的环境补完配置文件,这样自然而然就独立出来了(需更改文件名并忽略有效配置文件)。

    如果配置文件很大配置项很多,此法会让每一个人都觉得很麻烦。可以进一步把需要独立配置的选项单独分一个文件,可以共享的配置文件提交,需要独立的配置文件则模板化,这样可以省点事。不过使用配置的时候需要对两类文件进行合并处理——这个可以写脚本来做。更进一步的,可以允许独立配置文件覆盖同名配置项,这样还可以做到配置可自定义化。

    第二种方法则是换一个思路,配置文件正常提交,不用分也不用改。但凡遇到敏感信息的一律不写明文,可以用比如说系统环境变量来取代。每一个开发者需要在克隆代码之后设定必须的环境变量(这件事情本身可以单独来管理,和具体项目不牵扯),而项目本身的运行则依赖这些环境变量的存在及其验证有效性等等。

    第一种方法在各种开源项目里用的比较多;第二种方法则有一定的门槛,所以多用于固定团队项目。个人偏好第二种,因为我可以简单地使用脚本来控制一切,而且敏感信息独立于项目,安全性更高一些(第一种方法里,不巧总能碰到坏事的小白……),可重用性也更高(比如说多个项目都要用到数据库,我只需要本地设置一次相关的环境变量,这些项目都能使用)。

    2022-10-26 14:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有