保护PHP源文件不受file_get_contents()的侵害


Protect PHP source files against file_get_contents()?

我有很多客户要求同样的事情。博客、购物车、通讯系统等

因此,我创建了一个很酷的小PHP应用程序,而不是每次都重新创建后端。我的应用程序的第一部分充当包管理器。有一个配置文件,我用它来输入我的包需要的所有信息。

配置文件中包含的主要信息是管理员的用户名和密码(密码可能是散列的),以及到MySQL数据库的连接信息。

当我开始在我的包中使用file_get_contents()时,我开始考虑它…不能有人从远程服务器列出站点目录,并使用file_get_contents()从他们的端查看我的PHP源代码?

显然,这是一个巨大的安全问题,如果是这样的话,我似乎想不出一种方法来阻止这种情况的发生。

有没有标准的方法来防止这类攻击?

如果您fopen(), file_get_contents()或使用另一个PHP函数通过HTTP打开文件,该文件实际上没有输出任何内容,则不会收到任何内容。HTTP服务器将执行PHP并发送输出,就像在浏览器中查看时一样。

只要你的web服务器配置为PHP处理后提供这些PHP文件,那么就没有问题。

file_get_contents()

只获取响应头和正文数据。正文- HTML, JSON数据,XML等,在上瘾中如何设置远程服务器。如果远程服务器不支持PHP代码,并且没有安装PHP解释器,那么该服务器的PHP代码只是带有文本的文件,然后调用file_get_contents()返回PHP代码

file_get_contents()函数只获得HTML代码(当您加载它时页面显示的内容),而不是完整的PHP代码。

要获取文件的完整内容,您需要使用fopen()之类的函数,并且它仅不可用。