我知道我需要将我的登录信息存储在我的网络根目录之外,以防Apache被破解,但我不确定我的网络根目录是什么'是,在哪里存储我的登录信息,以及如何从PHP访问它们。
有人可以解释一下吗?
答案 0 :(得分:7)
您的网络根目录,即PHP中的$_SERVER['DOCUMENT_ROOT']
,是您的网络服务器(在本例中为Apache)指向特定主机的文件系统上的文件夹。
例如,如果您将此代码放在index.php文件中并访问您的域名(或子域名),它将告诉您您的网络根目录。
<?php
header("Content-Type: text/plain;charset=UTF-8");
die($_SERVER['DOCUMENT_ROOT']);
?>
应该说/home/some_user/public_html
或/var/www
。在这种情况下,您希望创建一个不在此目录中的路径。
例如:/home/some_user/config
或/var/webconfig
。
您 NOT 希望将其存储在/home/some_user/public_html/config
(请注意public_html)或/var/www/webconfig
(请注意这是{{}的子文件夹1}})
将数据存储在Web根目录之外的想法是,攻击者无法导航到/var/www
并获取您的密码。 LFI和目录遍历攻击不属于该计划的范围。
您也不应将任何敏感信息(数据库凭据,加密密钥等)检查到版本控制中。永远。
这取决于您的配置的编码方式。
http://yoursite.com/config/mysql.txt
答案 1 :(得分:2)
通常,我使用webroot外部的文件夹来获取应用程序代码(函数等),包括连接php的mysql。我创建一个文件夹(/ home / user / application或类似的)并在那里创建一个mysqlconnect.php文件,其中包含连接mysql或错误输出的代码。然后,确保路径(/ home / user / application /位于include目录中,并位于index.php(index.html)的顶部)包括:
<?php
include('/home/user/application/mysqlconnect.php');
?>
建议以这种方式存储任何密码混淆代码也是一个好建议,这样你的方法,动态盐和静态盐就不会以类似的方式受到损害。
希望有所帮助