保护PHP源文件免受file_get_contents()?

时间:2015-08-25 21:20:43

标签: php mysql security configuration

我有不止一些客户要求同样的事情。博客,购物车,时事通讯系统等。

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

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

当我开始在我的软件包中使用file_get_contents()时,我开始考虑这个问题...来自远程服务器的某人可以列出网站目录,并使用file_get_contents()从他们的结束查看我的PHP源代码?

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

是否有一种标准方法可以防止这类攻击?

3 个答案:

答案 0 :(得分:3)

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

只要您的网络服务器配置为在PHP处理后提供这些PHP文件,就没有问题。

答案 1 :(得分:0)

file_get_contents()

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

答案 2 :(得分:-1)

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

要获取文件的完整内容,您需要使用fopen()等功能,而且只能使用此功能。