【问题标题】:Read .php file into text using javascript使用 javascript 将 .php 文件读入文本
【发布时间】:2016-03-14 15:30:57
【问题描述】:

如何使用 javascript 获取 .php 文件的实际文本内容而不在服务器上执行它?

另外,我想知道是否有办法使用 javascript 读取除.php 以外的任何其他文件的文本内容。

【问题讨论】:

  • 不可能,除非服务器已配置为以纯文本形式提供 .php 文件并输出该文本,而不是输出它。您想要的基本上是不可能的 - 正确配置的服务器将始终执行 php 并向您发送输出。发送原始代码将是一个巨大的安全问题。 JS 可以获取您告诉它的任何 url(受同源问题的影响),但您无法控制服务器在后台对该 url 执行的操作。
  • @MarcB,好吧,我不认为这应该是一个安全问题,因为我在我的服务器上执行它,所以我不会对我自己的网站构成威胁。
  • 好吧,那么您需要配置您的服务器以将该 php 文件视为纯文本并提供其内容,而不是执行它。请记住,文件扩展名在网络上是完全不相关的。您可以将所有文件命名为 *.exe*.arglebargle。只要网络服务器被告知如何处理该扩展程序,它就会“工作”,即使这些扩展程序都没有“传统”提供。
  • 好的,我认为更改 .php 文件的服务器配置对我来说不是一个好主意,因为我仍然需要在其他一些实例上执行相同的文件。跨度>
  • 您可以针对单个文件进行特殊处理。但是,当您可以将文件重命名为whatever.txt 时,为什么还要这么长呢?由于您希望它作为文本提供,因此将其命名为文本文件。

标签: javascript filereader


【解决方案1】:

如果您使用的是 Apache 或 Nginx 等网络服务器,那么它们将为您执行 .php 文件。没有办法解决这个问题,因为您不应该允许任何人下载您的 php 源代码,而这正是您尝试使用 Javascript 做的事情。

如果您的 javascript 需要一些输出,那么让您的 .php 呈现 javascript 需要的数据。然后通过 Javascript 加载此内容可以像 ajax 调用一样简单,例如:http://api.jquery.com/jquery.ajax/

【讨论】:

  • 在意识到这是对安全性的过度杀伤后,请支持。对于尝试读取此类文件内容的脚本,它应该遵循同源策略,而不是让它完全不可能。
  • @TroubleZero - 如果你走这条路并建立一个php 文件,echo 是你网站的源代码,那么请注意:人们可以直接访问这个文件并查看内容。他们可能会篡改$_GET 变量。不允许此页面显示数据库密码或其他机密信息等内容。
  • @Chris 我理解所有这些 Chris,但它是某种渗透测试的网站,就像那种敢于让人们“破解这个网站”的网站,其源代码需要公开。 PHP 文件不断更新,这使得显示源文件本身变得更容易,而不是拥有其他漫游文件。
【解决方案2】:

我意识到这是一个非常古老的问题。但它有一个非常简单的解决方案,无需重新配置php服务器,假设,

  1. 希望查看一些文件,无论是永久还是在开发过程中的短时间内。
  2. 如果它被本地网络或 WAN 上的其他人查看,这不是安全问题,无论您在哪里查看。 (这种风险也可以降到最低,见文末。)
  3. 您的服务器已配置为以纯文本形式提供 .txt 文件

假设感兴趣的文件是 x.php, 建立一个带有文本文件扩展名的符号链接

ln -s x.php newname.txt

现在您可以在 newname.txt 所在的同一站点查看该文件。

将安全风险降至最低。如果您的服务器已经配置为不允许目录浏览,那么通过使新名称稍长一些,其他人不太可能很容易找到该名称来查看它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 2016-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多