在PHP脚本中保护MySQL密码

时间:2012-01-29 12:04:04

标签: php mysql passwords username

我似乎无法对此做出直接的答复,所以希望有人可以提供帮助。

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

1 个答案:

答案 0 :(得分:5)

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

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

E.g。 /var/www/public_html只保留一个文件:index.php

<?php require("../entrypoint.php");

然后其他所有内容都位于/var/www。如果PHP失败,则只有index.php会被泄露。

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