2

我有单独的 web (Apache/PHP) 和数据库 (MySQL) 服务器使用 mysqli 通过 SSL 连接运行良好。在框架内数据库连接库的 ssl_set() 函数中,我可以指定密钥/pem 文件的路径,只要它在 docroot 中即可。如果文件在 docroot 之外,我显然无法访问它们,并且连接失败。

在 apache docroot 之外存储和访问 mysql 客户端 ssl 密钥的最安全方法是什么?

是否可以安全使用“ini_set”,从而我可以“即时”允许该访问,然后删除该参数?或者我应该使用符号链接?

我在这里寻找最佳实践。我想这个问题不仅限于证书密钥,但我想确保您知道我的具体用例。

谢谢!

4

1 回答 1

0

我在这里寻找最佳实践。我想这个问题不仅限于证书密钥,但我想确保您知道我的具体用例。

这个问题涉及到安全专家将针对不同威胁模型进行权衡取舍的领域,因此安全凭证管理没有“一个正确的答案”。然而,有很多明显错误的答案。

Chris Cornutt 发表了一篇关于使用 Docker 保护 PHP 凭证的文章,我强烈建议您阅读这篇文章,了解有关解决凭证管理所涉及的威胁和策略的背景信息。

一般来说,psecio/secure_dotenv将为大多数用户解决这个问题。这是一个开源库,用于管理存储它们的静态加密凭证。

如果您需要更高级的东西(或与产品集成,例如 Vault),您可能需要请安全专家审查您的设计和实现。

于 2018-09-12T19:03:41.633 回答