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

Protect PHP source files against file_get_contents()?

我遇到过不少客户提出同样的要求。博客、购物车、时事通讯系统等

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

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

当我开始在我的包中使用 file_get_contents() 时,我开始考虑这个问题......远程服务器中的人不能列出站点目录,并从他们的末端使用 file_get_contents()查看我的 PHP 来源?

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

是否有一种标准的方法来防止此类攻击?

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

要获取一个文件的全部内容,需要用到fopen()这样的函数,只是不可用。

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

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

file_get_contents()

仅获取响应 headers 和 body 数据。 Body - HTML, JSON 数据, XML 等等,沉迷如何设置远程服务器。 如果远程服务器不支持 PHP 代码,并且不安装 PHP 解释器,则该服务器的 php 代码只是带有文本的文件,然后调用 file_get_contents() return php 代码.