项目在 git 里怎样合理的保存配置文件(服务器密码等敏感内容)
高洛峰
高洛峰 2017-04-28 09:04:22
0
2
638

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen (2)
某草草

办法其实很多,有两种较常用。

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

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

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

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

    黄舟

    这个加在忽略文件列表中 ---

      Neueste Downloads
      Mehr>
      Web-Effekte
      Quellcode der Website
      Website-Materialien
      Frontend-Vorlage
      Über uns Haftungsausschluss Sitemap
      Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!