在PHP脚本中保护MySQL密码

Rya*_*yan 4 php mysql passwords username

我似乎无法得到一个直接的答案,所以希望有人可以提供帮助.

如果我mysqli_connect()在我的PHP脚本中包含一个语句并且还包含我的MySQL用户名和密码,那么这些细节在任何时候都是易受攻击的吗?显然,PHP括号之间的任何内容都不会在客户端提供(因此在查看源代码时不应该是可见的)但是有没有其他方式可以破坏这些细节?

kba*_*kba 5

如果由于某种原因,PHP突然无法工作(由于升级,损坏的配置文件,例如),文件可能会以HTML格式提供,登录信息将免费提供给任何访问该网站的人.我以前见过这种情况.

解决此问题的最佳方法是将所有内容移出您的webroot,除了一个index.php只包含目录之外的一个文件的文件.这也意味着您的源代码不会受到损害,假设PHP不起作用.

例如,/var/www/public_html只保存一个文件index.php::

<?php require("../entrypoint.php");
Run Code Online (Sandbox Code Playgroud)

然后其他一切都在/var/www.如果PHP失败,那么只会index.php受到损害.

这将使其完全安全,除非您的服务器本身受到损害或您允许用户执行PHP代码,但这是另一个问题.大多数模块化CMS在初始化连接后也取消设置所有连接变量,以避免其中一个模块意外暴露任何内容.