我有同样的问题,最初
- 数据库密码存储在目录中的包含文件中
includes
(即防止偶然的 PHP 代码直接从 Web 文件中显示)
然后出现了另一个想法,有点复杂但仍然很可行
- 制作一个 C 程序,该程序拥有已编码的 DB 数据并通过系统调用传递数据。源代码(包括编码密码)在安全的地方拥有。C 代码必须执行一些检查以确保调用来自 PHP 等...
但这相当昂贵 - C 速度很快,但一直通过系统加载密码很昂贵。因此,将 APC 添加到游戏中会使整个事情变得更容易和更快
- 在第一次请求期间,将 DB 数据加载到 APC 永久变量中 - 因此数据在内存中,更难以从外部获取。通常,该算法是
算法
Check if APC variables are set
If yes use them
If no load them from C program, only once
APC 文档
- 另一个想法,例如使用是在包含密码
php-fpm
的 fpm 配置(只能由root读取)中设置一个环境变量
最后,您还可以创建自己的 PHP 扩展,提供来自 C 代码的数据(扩展通常用 C 编写)。这是一些扩展文档。
这不是如何防止密码窃取的最终答案,但至少它会使黑客更难确定密码 - 并且还需要更多的知识。