我正在运行几个不同的PHP购物车,我们正试图在版本控制下获取各种配置文件。到目前为止,我们一直在git中忽略它们,因为当然,我们不希望任何人都可以使用生产级密码。此外,我们大多数开发人员都使用独特的信息运行本地安装。
在与我们的系统管理员讨论这个问题时,我突然想起我们可以在apache vhost块中设置环境变量并从PHP访问它们,如下所示:
Apache:SetEnv db_user "username"
PHP:<?php $config['db']['user'] = $_ENV['db_user'];
它似乎没有问题,但我以前从未见过这样做过。以这种方式处理身份验证信息是否有任何影响(技术,安全等)或限制?
答案 0 :(得分:2)
这与the PHP Security Guide: Databases and SQL中提出的内容非常接近。
他们指出,一个潜在的问题是通过调用“像phpinfo()或print_r($ _ SERVER)这样的东西来暴露变量的风险。”所以问题是你是否可以控制风险 - 以及你是否相信所有能够访问该虚拟主机的人(在你的上下文中,答案可能是“是”)。
他们还建议通过将这些凭证放在只能由root读取的文件中来添加额外的重定向级别 - 这在部署中似乎是合理的,如果在开发上下文中略微偏执。