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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

我的服务器上有一些文件:

index.html, file.txt

如何防止用户打开file.txt将其输入为url:website.domain/file.txt

提问于
用户回答回答于

简单的解决方案是将文件存储在公用文件夹之外。(你的情况而言,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");
用户回答回答于

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

可以限制对.htaccess文件中单个文件或文件组的访问。

扫码关注云+社区

领取腾讯云代金券