3

我在工作中运行了几个不同的 PHP 购物车,我们正在尝试将各种配置文件置于版本控制之下。到目前为止,我们只是在 git 中忽略了它们,因为当然,我们不希望任何人都可以使用生产级密码。此外,我们大多数开发人员都在运行具有独特信息的本地安装。

在与我们的系统管理员讨论这个问题时,我突然想起我们可以在 apache vhost 块中设置环境变量并从 PHP 访问它们,如下所示:

阿帕奇:SetEnv db_user "username"

PHP:<?php $config['db']['user'] = $_ENV['db_user'];

看起来它可以毫无问题地工作,但我以前从未见过它这样做过。以这种方式处理身份验证信息是否有任何影响(技术、安全等)或限制?

4

1 回答 1

2

这与 PHP 安全指南:数据库和 SQL中提出的内容非常接近。

他们指出,一个潜在的问题是通过调用“phpinfo() 或 print_r($_SERVER)”来暴露变量的风险。所以问题是您是否可以控制这种风险 - 以及您是否信任可以访问该虚拟主机的每个人(在您的上下文中,答案可能是“是”)。

他们还建议通过将这些凭据放在只有 root 可读的文件中来添加额外级别的重定向——这在部署中似乎是合理的,如果在开发环境中有点偏执的话。

于 2012-06-11T22:16:10.097 回答