我似乎无法对此做出直接的答复,所以希望有人可以提供帮助。
如果我在PHP脚本中包含mysqli_connect()
语句并且还包含我的MySQL用户名和密码,那么这些详细信息在任何时候都会受到攻击吗?显然,PHP括号之间没有任何东西在客户端提供(因此在查看源代码时不应该是可见的)但是有没有其他方式可以破坏这些细节?
答案 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也会取消设置所有连接变量,以避免其中一个模块意外暴露任何内容。