2013-06-29 68 views
0

我有基于WordPress的网站。只有登录的用户才能看到帖子,网站和文件(我使用s2member插件)。在Wordpress中安全上传文件

我有禁止访问文件的未登录用户的问题。

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

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

我怎样才能防止这个,一些插件,.htaccess?

我的网站是在共享主机我只能通过ftp访问。

+0

共享主机会让这个更难。你有权访问位于Web根目录之上的文件夹吗? (即一个文件夹无法通过网络访问,但服务器可访问) –

+0

没有... :( 我把文件直接放到www文件夹中 – esio

回答

0

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

有一些商业插件可以对部分或全部WP网站实施访问限制。有些允许限制文件,有些则不允许。会员是该领域中较为成熟的球员之一。 (但是我不能推荐他们的提议,在我遇到的其他问题中,它在多服务器设置上并不能很好地发挥作用。)自从我上次检查以后,可能会有一些免费插件。

如果你决定自己编码,有很多选项。其中三个包括:

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

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

  3. 根本不限制文件,并按照他们现在的方式:通向只有会员才能看到的公开文件的链接。这里的理由是,无论你如何限制对你的pdf的访问,如果一个心怀不满的用户决定分享,它最终会出现在某个洪流站点或某个下载站点。

0

.htacces中使用此项。这允许用户只下载或查看.gif,.jpg,.jpeg,.png和.bmp文件。 如果你不想允许这个,然后删除行“Allow from 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 
+0

Unforunatelly,这个解决方案不起作用... – esio