Php 如何对开发人员隐藏敏感数据

Php 如何对开发人员隐藏敏感数据,php,svn,passwords,Php,Svn,Passwords,我想知道我们如何才能对PHP项目的开发人员隐藏敏感数据(数据库密码和其他密码)。我们正在为我们的项目使用Subversion。仅仅禁止某些用户访问我们拥有密码文件的文件夹就足够了吗?还有其他建议吗 不要在任何代码版本控制系统中存储敏感数据。保持变量为空 第一次签出后,在本地设置变量 对于分布式/远程数据库,只需为该用户创建另一个访问权限,以访问该数据库并提供凭据 设置值后,将这些文件从以后的更新中排除 您可以有一个存储敏感数据的DB表,并且只有具有正确凭据的用户才能从中读取。 每个开发人员都必须

我想知道我们如何才能对PHP项目的开发人员隐藏敏感数据(数据库密码和其他密码)。我们正在为我们的项目使用Subversion。仅仅禁止某些用户访问我们拥有密码文件的文件夹就足够了吗?还有其他建议吗

  • 不要在任何代码版本控制系统中存储敏感数据。保持变量为空
  • 第一次签出后,在本地设置变量
  • 对于分布式/远程数据库,只需为该用户创建另一个访问权限,以访问该数据库并提供凭据
  • 设置值后,将这些文件从以后的更新中排除

  • 您可以有一个存储敏感数据的DB表,并且只有具有正确凭据的用户才能从中读取。 每个开发人员都必须输入用户名和密码才能通过一些配置文件访问数据库。 此外,您不需要为每个开发人员设置用户和密码,因为您可以拥有ie 3访问级别,所以只需创建3个用户ie DeveloperAdmin(可以更改密码表) developerTrusteRead(可以读取密码表) DeveloperNotTrusted(无法访问密码表) 因此,您为不受信任的开发人员分发相同的db用户通行证。

    这就足够了

    如果您想实现一种经济高效而又安全的方式,让不同的人以不同的安全级别访问相同的资源(受密码保护的资源,作为数据库),请查看此答案,并以这种方式实现选项3

    • 创建多个用户名/密码以访问同一资源-就像另一个答案建议使用developerTrusteRead、developerNotTrusteRead等。。。数据库中的角色,每个角色具有不同的用户名和密码。DeveloperNotTrustedRead(对于数据库)不应创建过程、更改表、删除表、访问除他操作的数据库以外的其他数据库等
    • 在应用程序中使用不同的密钥加密每个角色的用户名/密码(即选项3)
    • 向不受信任的开发人员提供密钥,仅用于解密链接到权限较少的角色(如DeveloperNotTrustedRead或DeveloperNotTrustedWrite)的用户名/密码
    通过这种方式,您可以在SVN中分发任何文件,因为您将持有密钥来解密重要的凭据,而分发的密钥将允许访问功能较弱/危险性较小的权限集


    只有当您需要他们访问受密码保护的资源(即数据库)时,这才有意义,但您担心给不受信任的人授予高权限,因此您希望最小化他们对数据库(或任何其他受保护的资源)的权限,并保持轻松共享代码

    也许不要在SVN中存储敏感数据?将您的密码和其他此类信息保存在不会提交到存储库的配置文件中。只需创建一个配置示例,并仅在生产服务器上添加敏感数据。例如,在svn中,您有config.php.example文件,在生产过程中,您将该文件复制到config.php