【问题标题】:Secure Database Passwords in PHP ProjectPHP 项目中的安全数据库密码
【发布时间】:2019-05-02 01:07:13
【问题描述】:

我在 Git 上有一个 PHP 项目,可以访问其他一些开发人员。
问题是。
1) 开发人员对项目进行更改并将其推送到服务器或上传到测试服务器。
2) 开发人员登录测试或生产机器运行此脚本。 如何保护数据库密码?
如果我制作一个配置文件,他们可以简单地添加一个 echo "" 命令并获取密码。
有什么解决办法吗?也许在linux中具有组/用户权限?

谢谢。

【问题讨论】:

  • 如果你不信任你的开发者,你就不能运行他们的代码。
  • 您可能不会找到一种万无一失的方法来执行此操作,并且由于您正在与其他开发人员合作,因此隐藏此数据的简单方法可能行不通。解决方案:不要让任何你不信任的人访问你的项目
  • 如果您的应用程序可以访问数据库,并且您的开发人员可以访问您的应用程序,那么您的开发人员可以访问您的数据库。
  • 相信是的。但是,如果某个开发人员现在很活跃并且过了一段时间之后,那会发生什么?将数据库密码更改为所有机器?这很痛苦。而且造成损害的风险很大。
  • 这更像是一个系统管理问题。如果他们有权访问服务器,则使用公钥/私钥对授予他们 SSH 访问权限。当他们离开时,通过删除他们的公钥来撤销他们的访问权限。最后,设置防火墙,防止数据库端口被应用程序和数据库服务器以外的任何人访问。这将确保即使有密码,他们也无法使用它。

标签: php database security passwords hide


【解决方案1】:

不会有任何使用 linux 安全性的真正解决方案,因为 Web 服务器应该始终能够执行代码和 php,因此如果您保留对生产服务器的 ssh 访问权限,他们将能够做任何他们想做的事情就可以了。

获得一些安全性的一种方法是停止使用手动登录并尝试在您的 git 中使用 CI/CD,这样您至少可以完全控制执行的内容,生产服务器。

这样您就可以保留对测试服务器的访问权限,并且他们应该始终拥有能够调试的权限,但他们无法执行您之前在生产服务器上未验证的任何内容。为确保没有任何问题,您应该是唯一的人,或者系统管理员团队应该是唯一有权访问 CI 上的 ssh 密钥的人。

如果您从头开始创建一个 CI 并且从未做过,这是需要做的一些工作,但完成后值得您花时间,您也会获得平静,因为知道没有人可以在不知道发生了什么的情况下访问生产执行它(这将是真正的痛苦,因为您必须检查所有内容......)。

【讨论】:

  • 我正在想办法解决我的问题。现在很难改变整个结构。许多项目和机器。我正在考虑这样的场景:1)添加主数据库设置和连接到生产机器并从 git 中删除 2)当用户将代码推送到 git 并与 master 合并后将与机器同步代码。 3)我现在在这里工作。制作一个用户只能以cli执行脚本而不能访问机器的层。
猜你喜欢
  • 1970-01-01
  • 2013-04-02
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 2015-08-27
  • 2011-03-09
  • 2013-09-18
相关资源
最近更新 更多