想象一下以下PHP文件:
<?php
$topSecret = "Something important";
?>
如果我把它放在运行标准LAMP设置的服务器上,有人怎么能找到$topSecret
?
如果变量没有回显,是否容易受到攻击?这种实际应用可能是存储在服务器的Web根目录中的数据库凭证。
答案 0 :(得分:13)
如果PHP失败了somhow,那么页面将显示为plaint文本文件。那之前发生过;它曾经发生在Facebook。为防止这种情况,您应将所有敏感变量(密码等)存储在不在Web根目录中的php文件中。您可以将其存储在父文件夹中(如果您有权访问它)或存储在受apache(deny all
)保护的子文件夹中。
答案 1 :(得分:6)
在正常情况下,无法查看。
但是配置中的错误或代码中的漏洞可以查看文件的内容。
通常,人们会将此类信息放在webroot之外,以减少此类事件发生的可能性。