限制对(某些)上传/下载的访问的简单解决方案

时间:2013-05-27 作者:Nicolai Grossherr

初始情况

对于我正在建立的一个网站,我研究了保护上传/下载的整个领域,并根据用户角色/功能限制对其的访问。当然,我已经阅读了之前与(一般)主题相关的一些问题,出于参考原因,我发现了最重要/最有趣的问题:

补充说明

通常,额外提高wordpress安装的安全性不是一个坏主意-例如保护wp-config.php - 你可以而且应该做很多事情。如何做到这一点,有大量的信息。在这个问题的背景下,我主要关心我的上传/下载。

Wordpress上传不安全,每个人都可以浏览uploads 文件夹,除非使用.htaccess:

Options All -Indexes
The.htaccess 文件必须放置在uploads 文件夹但这并不能真正保护它们,只会使查找文件变得更加困难。此外,您还可以防止hotlinking, E本质上限制访问基于referrer - 虽然这是一个有点不同的情况,我想我提到了它,我没有进一步阐述,你可以找到大量的信息。

当然,可以将帖子设置为私有,或者使用合适的模板文件创建自定义帖子类型,以将该帖子类型设置为私有,但这并不能保护您的文件。用条件句包装文件也是如此,例如is_user_logged_in()is_admin().

另一方面,有很多插件都有希望使您的文件得到安全和保护,但其中许多插件只是假装这样做,原因如下。我之所以要指出这一点,是因为我很确定,这并不是每个人都知道的——所以,要意识到这一点。

目标

我的目的是能够限制对(某些)上传和下载的访问。而且为了确保没有任何不需要的人可以访问这些文件,而不是偶然的,或者如果有人知道文件名,那么这些文件应该是真正私有和安全的。毕竟,只有某些人可以毫无例外地访问。

此外,我没有必要将整个网站私有化,事实上这会适得其反——它被用于公共展示目的。此外,我还希望该解决方案易于使用,原因很简单,一些使用它的人并不完全是计算机专家,通常情况下就是这样。

问题

因此,有没有(相对)简单的方法来限制对(某些)上传和相应下载的访问?就像我所做的那样,这意味着一种真正保护和保障他们的方法?

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

我在此回答我自己的问题,因为我找到了一个解决方案,但我真的对你的意见很感兴趣。或者你有一个更好的解决方案,如果有,我真的很想在这里讨论一下。

研究结果

我的研究结果是:
1。获取文档根目录之外的文件,www 文件夹
2。禁止直接访问包含文件的文件夹
3。让脚本处理对文件的请求<这些观点的来源至少大部分都包含在我的问题中。

解决方案我安装了插件wp-downloadmanager一个名为files 将在内部创建wp-content 过程中.htaccess 文件到新files 文件夹:的内容.htaccess:
Options All -Indexes
Order Deny,Allow
Deny from alldownload method;output file;allowed to download;

结论性思考

我认为解决方案基本上遵循了研究结果。除了把文件放在外面。但限制对目录的访问/保护并让脚本处理文件请求的操作已经完成。访问限制由.htaccess 本例中的脚本是插件wp-downloadmanger.

补充说明absolutely necessary 更改download methodoutput filemust 那个.htaccess 文件已就位

要检查插件接管脚本角色的事实,请查看wp-downloadmanger.php - 关于第207至227行(版本1.6.1);这是作为链接信息的补充点

结束