在Wordpress中保护上传的文件

时间:2013-06-29 14:15:19

标签: wordpress apache

我有基于Wordpress的网站。只有登录的用户才能看到帖子,站点和文件(我使用s2member插件)。

我在禁用未记录用户的文件时遇到问题。

我上传文件,将其附加到帖子中。只有登录的用户才能看到帖子和附件。

问题是未登记的用户可以直接下载文件(例如http://my-site.pl/files/secret_file.pdf)。

如何防止这种情况,某些插件,.htaccess?

我的网站位于共享主机上,我只能通过ftp访问。

2 个答案:

答案 0 :(得分:0)

有潜在的解决方案,但没有一个在实践中脱颖而出 - 每个都有自己的一套荆棘。

有一些商业插件可以对部分或全部WP站点实施访问限制。有些允许限制文件,有些则不允许。 Amember是该领域最成熟的球员之一。 (但我不能推荐他们的报价。在遇到的其他问题中,它在多服务器设置上效果不佳。)自从我上次检查以来,可能有一些免费的插件也是如此。

如果您决定自己编写代码,可以选择多种选项。其中三个包括:

  1. 使用php代替Apache提供文件,并要求用户在提供文件之前登录。有用。如果您决定马虎,那么设置相对容易。如果你想正确设置它并不容易:想想需要恢复的部分文件等等。

  2. 使用Apache有条件地提供文件。实质上,您在令牌文件夹中创建一个特定于用户的文件,并在用户登录时将该文件的名称存储为cookie。然后,如果相应的文件不存在,则让Apache重写规则拒绝访问。令牌文件夹。这不容易设置

  3. 根本不限制文件并将内容保留为目前的状态:指向只有成员才能看到的公开文件的链接。这里理性的是,无论你如何限制对pdf的访问,如果一个心怀不满的用户决定分享它,它最终将会出现在某个torrent网站或下载网站上。

答案 1 :(得分:0)

.htacces 中使用此功能。这允许用户只下载或查看 .gif,.jpg,.jpeg,.png和.bmp 文件。 如果您不想允许,请删除“允许来自env = let_me_in”行 我希望这会奏效。

# BEGIN WordPress
<IfModule mod_rewrite.c>
# If the URI is an image then we allow accesses
SetEnvIfNoCase Request_URI "\.(gif|jpe?g|png|bmp)$" let_me_in

Order Deny,Allow
Deny from All
# Allow accesses only if an images was requested
Allow from env=let_me_in
</IfModule>

# END WordPress