如何防止用户在服务器上打开文件?

时间:2018-06-01 17:02:44

标签: php html file server

这个问题可能听起来很愚蠢,确实很愚蠢 我的服务器上有一些文件:
index.html, file.txt
如何阻止用户打开file.txt并将其作为其URL输入: website.domain/file.txt?这可能很容易,或者我是否需要制作一些特殊的文件夹或其他黑魔法?感谢

5 个答案:

答案 0 :(得分:1)

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

例如:

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

然后在您的exec.php中,您可以使用以下命令访问该文件:

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

(方法#2)

由于您在评论中提到您正在使用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");

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

有几种不同的方法可以通过会话或用户权限来执行此操作,或者根据用户是否以登录方式执行此操作。

审核此类内容可能会帮助您开始使用

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

<Files *.txt>
Deny from all
</Files>
相关问题