【问题标题】:How to prevent users from opening a file on the server?如何防止用户打开服务器上的文件?
【发布时间】:2018-11-11 20:54:01
【问题描述】:

这个问题可能听起来很愚蠢,但确实很愚蠢。
我的服务器上有一些文件:
index.html, file.txt
如何防止用户打开 file.txt 并将其输入为他们的 url: website.domain/file.txt?这很容易吗,还是我必须制作一些特殊的文件夹或其他黑魔法?谢谢

【问题讨论】:

  • 将文件放在站点根目录下或配置 htaccess 以禁止访问。
  • 一般不要把这些文件放在public文件夹中。您还可以使用 Apache 的 htaccess 或编辑 Nginx 的 nginx.conf 来阻止访问
  • 嗯,假设 index.html 伪装成 PHP 处理的文件,那么除非您的文件权限不允许,否则没有什么能阻止 PHP 访问该文件
  • 对不起,什么是公用文件夹?如何制作不公开的文件夹?
  • index.html 的文件夹可能是公用文件夹。您应该将文件存储在上一层。例如,如果我的索引文件路径如下所示:.../somefolder/public_html/index.html,那么您应该将文件存储在.../somefolder/file.txt

标签: php html file server


【解决方案1】:

您不应将它们放在您的网络服务器上可公开访问的位置。

您可以限制对 .htaccess 文件中单个文件或文件组的访问。 This thread 有几种方法可以做到这一点。

【讨论】:

    【解决方案2】:

    有几种不同的方法可以做到这一点,通过会话或用户权限,或者基于用户是否登录,例如..

    查看类似的内容可能会帮助您入门

    https://www.wmtips.com/php/simple-ways-restrict-access-webpages-using.htm

    【讨论】:

      【解决方案3】:

      将文件的权限设置为 0 0 0。这样你只能通过管理面板打开文件。

      【讨论】:

      • 如果我这样做,我能用 php 打开文件吗?
      • 没有。将权限设置为 0 0 0 将阻止 PHP 访问它。使用 .htaccess 限制对文件的直接访问将允许您通过 PHP 读取/更新文件
      【解决方案4】:

      简单的解决方案是将文件存储在公用文件夹之外。 (在你的情况下 public = htdocs)

      例如:

      ├── protected.txt
      ├── public
      │   ├── index.html
      │   ├── exec.php
      

      然后在您的exec.php 中,您可以通过以下方式访问该文件:

      echo file_get_contents(__DIR__ . "/../protected.txt");
      

      (方法#2)

      由于您在 cmets 中提到您正在使用 XAMPP,这意味着您在 Apache 上运行您的服务器,我可以向您展示使用 htaccess 的不同方法。

      ├── public
      │   ├── index.html
      │   ├── exec.php
      │   ├── protected
      │   │   ├── .htaccess
      │   │   ├── protected.txt
      

      然后在你的.htaccess 你写:

      deny from all
      

      这将使protected 文件夹中的每个文件都无法通过 HTTP 访问。

      您的exec.php 文件将如下所示:

      echo file_get_contents(__DIR__ . "/protected/protected.txt");
      

      【讨论】:

        【解决方案5】:

        在您的 index.php 所在的位置创建一个 .htaccess 文件并编写此文件

        <Files *.txt>
        Deny from all
        </Files>
        

        【讨论】:

          猜你喜欢
          • 2011-03-25
          • 1970-01-01
          • 2014-06-03
          • 1970-01-01
          • 2011-04-21
          • 1970-01-01
          • 1970-01-01
          • 2017-01-22
          • 1970-01-01
          相关资源
          最近更新 更多