【发布时间】:2009-01-31 08:49:59
【问题描述】:
真的有办法做到这一点吗?从服务器检索原始 .php 文件(进入服务器的 FTP 帐户除外)?这就是为什么有工具/脚本来加密php源代码的原因吗?
如果是真的,那么如何防范呢? (不使用php源代码加密)
编辑:提到的服务器正在运行 php,例如。 apache-php-mysql,您的标准托管服务器配置。
【问题讨论】:
真的有办法做到这一点吗?从服务器检索原始 .php 文件(进入服务器的 FTP 帐户除外)?这就是为什么有工具/脚本来加密php源代码的原因吗?
如果是真的,那么如何防范呢? (不使用php源代码加密)
编辑:提到的服务器正在运行 php,例如。 apache-php-mysql,您的标准托管服务器配置。
【问题讨论】:
如果您在谈论其他人的服务器,那么简短的回答是否定的。如果第三方可以读取您的 PHP 源代码,那将是一个相当大的安全漏洞,因为 PHP 文件往往包含数据库密码、哈希密钥、专有算法和其他您不希望落入坏人之手的好东西。
如果您谈论的是您自己的服务器(即您自己可以访问的服务器),那么您可以将一些简单的脚本放在服务器上,允许您指定服务器上任何文件的路径并拥有它以明文形式返回。 但是,出于上述原因,您永远不想将这样的脚本放在生产服务器上。
【讨论】:
一般来说,您无法访问远程源代码。要发生这种情况,必须禁用 PHP 模块。
但作为一个思想实验,这怎么可能发生?
撇开可以访问整个文件系统的大规模漏洞利用不谈,想象一下应用程序中是否存在安全漏洞,允许您在 .htaccess 文件中插入一行。鉴于 httpd 进程可写入的 .htaccess 对 Wordpress 等应用程序很有用,因此这种可能性并不太奇怪。
如果你添加了这个:
php_value engine off
源文件现在可以下载了!
【讨论】:
如果服务器没有很好地配置,PHP 文件可能不是这样的句柄。
一些例子:
.phps。.inc 用于打算使用include 或require 包含的文件。如果服务器未配置为也将这些作为 PHP 进行处理,则在直接请求它们时,它们将作为纯文本传递。但开发人员也可能是漏洞的来源。例如,当他使用脚本从服务器下载文件时,该脚本几乎接受所有输入而无需验证。
【讨论】:
如果文件是从启用了 php 解释(通过 HTTP)的 Web 服务器提供的,那么它将被处理。您收到未处理代码的唯一方法是 PHP 以某种方式被禁用。
【讨论】:
过去我遇到过一个配置错误的 Web 服务器,它通过 PHP 解释器正确设置了一个虚拟主机来服务器 PHP 文件。有第二个虚拟主机指向同一目录,但没有启用 php。这意味着像“config.php”这样的东西,用于以纯文本形式显示的几个应用程序。众所周知,典型的 config.php 具有数据库身份验证凭据和其他不应该知道的东西。
因此,了解您的网络服务器设置非常重要,并确保您没有做傻事。
【讨论】: