繁体   English   中英

允许上传和浏览但不允许下载

[英]Allowing upload and browse but disallowing download

我认为这个问题应该很简单但是在网上搜索后我找不到答案,所以我决定在这里问一下。

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

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

为了实现它,我的目标是:允许php在该文件夹中上传,读取,写入和执行文件,但不是客户端,除非他们使用我的PHP脚本。

提前致谢

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM