在不暴露证书的情况下开发开源的好方法?

dan*_*jar 1 git publish open-source credentials github

我开发了一个Web应用程序并将其源代码推送到公共Github存储库.问题是PHP代码包含其他人不应该看到的数据库凭据.

现在我正在寻找一种处理这个问题的好方法.我可以使用Git存储库排除配置文件.gitignore,但是其他人不会看到用于创建自己的配置的结构.另一方面,我不想手动替换每次提交的真实凭据.

在开源软件的源代码中处理这些敏感信息的好方法是什么?

Jer*_*orn 5

在这些情况下我通常做的是允许两层配置,其中默认的属性集是通过源进行版本化和提交的,但是开发人员可以提供将在发现时使用的外部文件,并将替换默认值.每个基础.这不仅对外部化凭据很有用,而且还允许您默认诸如线程数,连接池大小等的内容.如果需要,可以覆盖这些内容.重要的是,他们总能看到完整的结构.您自己将拥有自己的外部覆盖文件,其中包含您使用的真实凭据.但默认值是你签到的假的.

我知道你使用的是PHP,例如java,它看起来大致如下:

Properties defaultProps = loadDefaults();
Properties overrideProps = loadOverridesIfFound();
for(String name : overrideProps.keySet()) {
   defaultProperties.put(name,overrideProps.get(name));
}
Run Code Online (Sandbox Code Playgroud)

我发现这种技术对许多项目非常有效.