我使用mysqli通过SSL连接使用单独的Web(Apache / PHP)和数据库(MySQL)服务器。在框架内的数据库连接库中的ssl_set()函数中,我可以指定keys / pem文件的路径,只要它在docroot中。如果文件在docroot之外,我显然无法访问它们,并且连接失败。
在apache docroot之外存储和访问mysql客户端ssl密钥的最安全方法是什么?
是否可以安全使用“ini_set”,我可以“动态”允许访问,然后删除该参数?或者我应该使用符号链接吗?
我在这里寻找最好的做法。我想这个问题不仅限于证书密钥,但我想确保你知道我的具体用例。
谢谢!
答案 0 :(得分:0)
我正在这里寻找最佳实践。我想这个问题不仅限于证书密钥,而是我想确保您知道我的特定用例。
这个问题进入了一个领域,安全专家将在针对不同威胁模型的权衡取舍上费尽心思,因此对于安全的凭据管理没有“正确的答案”。但是,有很多明显错误的答案。
克里斯·康纳特(Chris Cornutt)发表了一篇有关securing PHP credentials with Docker的文章,我强烈建议阅读以获取有关解决凭证管理所涉及的威胁和策略的背景信息。
通常,psecio/secure_dotenv将为大多数用户解决此问题。这是一个用于管理凭据的开源库,该凭据将静态存储的凭据存储起来。
如果您需要更高级的产品(或与Vault等产品集成),则可能需要请安全专家来审查您的设计和实现。