0

我认为这个问题应该很容易,但是在搜索了整个网络之后我找不到答案,所以我决定在这里问。

我的网站上有一个与 php 配合使用的文件上传器。上传文件的文件夹有 777 chmod。我还有一个 php 脚本来列出该文件夹中的文件。我需要的是允许 php 上传和浏览该文件夹中的文件,但不允许人们这样做。我想象的唯一解决方案是将该文件夹分配给与默认不同的另一个用户,因此我可以稍后在 filezilla 中进行 chmod 并只允许所有者执行此操作,因此人们将通过 php 脚本的输出看到文件,但如果他们不会导航到该文件夹​​。

我正在使用 Debian,apache2。我想知道我能做什么。

简而言之,我的目标是:允许 php 上传、读取、写入和执行该文件夹中的文件,但不允许客户端,除非他们使用我的 php 脚本。

提前致谢

4

2 回答 2

1

所有服务(包括 Web 服务器)都在作为操作系统帐户的安全上下文中运行,例如 apache 开始使用 apache 组中的 apache 用户。更改模式并将所有者更改为此用户和组就足够了。永远不要将目录 chmod 到 777,直到有一个很好的解释。使用此技巧,Web 服务进程只能在该目录中读取、写入和执行。

同样,如果您不希望浏览器客户端看到(读取)该目录的内容,您应该拒绝在该目录上列出。我认为它默认是禁用的。

于 2012-06-06T23:59:48.283 回答
1

将您正在谈论的所有文件放在他们自己的目录中。将.htaccess文件添加到该目录。的内容.htaccess应该是deny from all

这将阻止任何用户手动访问文件,因为访问将被阻止。您的 PHP 脚本仍然可以浏览文件的内容并将其作为具有正确内容类型的附件提供。

有关如何在 PHP 中提供文件以供下载的更多信息,请阅读:https ://serverfault.com/questions/316814/php-serve-a-file-for-download-without-providing-the-direct-link

于 2012-06-06T23:56:11.857 回答