【问题标题】:Can a PHP file ever be read externally? [closed]可以从外部读取 PHP 文件吗? [关闭]
【发布时间】:2023-03-27 21:47:01
【问题描述】:

是否有人可以“破解” apache 服务器并读取 PHP 文件。我知道 PHP 是一种服务器端语言,不能从服务器以外的任何地方读取,但是有人可以破解服务器并像读取文本文件一样读取它们吗?

【问题讨论】:

标签: php security


【解决方案1】:

是的,如果他们真的侵入服务器(SSH、FTP 等),他们可能可以访问硬盘上的文件。但是,正确配置的 Apache 服务器不会提供原始 PHP 文件,它应该始终首先使用 PHP 解释器处理它们。

为了避免错误配置的 Apache 服务器出现问题(即使只是暂时的故障),建议将应用程序文件保留在公共 webroot 之外。仅将一个小的引导 PHP 文件放入 webroot 中,该文件可能会在紧要关头公开,但只是 includes 其他不可公开访问的 PHP 文件。

【讨论】:

  • 感谢您的回答。这就是我要做的——我会把它放在 webroot 之外。我不明白为什么人们现在对这里的任何东西都投反对票。这是一个我不知道答案的诚实问题。再次感谢。 :)
  • 您确实需要“破解”任何东西才能访问文件。一个简单的 wget 可以从任何服务器获取任何文件,除非它受到其他方式的保护,即在操作系统或 Web 服务器级别。
  • @Chiwda Wut?你倒过来了。一个简单的wget 将一无所获除非该文件通过网络服务器明确公开。
【解决方案2】:

人们可以通过多种方式读取服务器上的 PHP 源文件。

  1. 考虑一下服务器配置错误
  2. 服务器的黑客攻击
  3. 没有用<?php打开PHP文件
  4. 临时/备份文件(想想index.php~ 或index.php.bak)
  5. 等

我了解 PHP 是一种服务器端语言,不能从服务器以外的任何地方读取

这仅意味着文件是在服务器端处理的。这并不意味着源以某种方式绑定到服务器。

【讨论】:

  • +1 用于备份文件;这是令人不安的普遍现象。就像为“包含”或代码即配置使用不同的文件扩展名的陈旧做法一样,例如“database.inc”、“settings.conf”。目录遍历漏洞和本地文件包含漏洞也是意外导致源代码泄露的常见方式。
【解决方案3】:

NASA 可能会被黑客入侵。 FBI 可以被黑客入侵。您的共享服务器肯定会被黑客入侵。

【讨论】:

    【解决方案4】:

    是的,当然可以——如果服务器被入侵,那么上面的任何文件都是可见的。

    【讨论】:

      【解决方案5】:

      是的,某人完全有可能通过漏洞利用、窃取您的密码、通过您或其他人编写的错误代码或多种不同方式入侵服务器。

      【讨论】:

        【解决方案6】:

        如果 apache 服务器存在允许不受限制地访问文件系统的安全漏洞,那么 apache 用户可以访问的任何文件都可以通过漏洞造成的漏洞使用。

        【讨论】:

          【解决方案7】:

          当然!您可以在服务器上阅读和编辑实际的 PHP,对吧?因此,任何可以访问您的服务器(通过 FTP、您的网络托管控制面板、您编写的 PHP 代码中的漏洞)的人都有可能阅读您的 PHP。

          普通用户看不到 PHP 的唯一原因是 Apache 说:啊!此文件以 .php 结尾!让我先通过 PHP 解析器运行它!但这很容易关闭。

          长话短说:永远不要在您的网络服务器上存储敏感数据。如果必须,请确保它已加密。

          【讨论】:

            【解决方案8】:

            如果您破解服务器,您可以获得 FTP 访问权限并读取文件。您还可以欺骗服务器,认为带有 *.php 的文件不是用 PHP 执行的;如果你想访问它们,服务器会提供文件下载(如果服务器超载也会发生这种情况?)。

            【讨论】:

              【解决方案9】:

              当然可以,可以通过 FTP 或任何其他损害“限制”查看文件的能力的方法来完成。

              然而,如果您的服务器设置正确,PHP 文件不会以文本形式显示给某人,“index.php”将不会显示未处理的内容。

              【讨论】:

                【解决方案10】:

                如果您的服务器有旧软件,或者您的 php 脚本包含一些错误,有些人可以阅读您的 php 脚本。

                【讨论】:

                  【解决方案11】:

                  这通常发生在 apache 配置错误时。如果您不小心删除了 php 文件的扩展处理程序,它们将作为纯文本返回(几年前发生在 facebook 上)。出于这个原因,最好只在你的 docroot 中有一个引导文件(例如 index.php - <?php include '../private/not-in-docroot/file.php' ?>)。所以如果 php 文件没有被正确处理,只有你的引导代码是公开的——应用逻辑和配置文件是安全的。

                  tl;dr - 将您的代码放在 docroot 之外,只公开一个引导文件

                  【讨论】:

                    【解决方案12】:

                    如果其他人可以看到您的 PHP 源代码

                    • 代码允许
                    • 服务器在未安装 PHP 的情况下运行
                    • 服务器配置不正确
                    • AND(在某些情况下)发生错误。

                    其中一个 Facebook 的服务器设置错误,PHP 代码可访问并在网上泄露。检查您的服务器和代码是否存在安全问题!

                    【讨论】:

                      猜你喜欢
                      • 2011-01-25
                      • 2020-09-11
                      • 1970-01-01
                      • 2019-12-05
                      • 2010-10-13
                      • 2023-01-30
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多