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