我有基于Wordpress的网站。只有登录的用户才能看到帖子,站点和文件(我使用s2member插件)。
我在禁用未记录用户的文件时遇到问题。
我上传文件,将其附加到帖子中。只有登录的用户才能看到帖子和附件。
问题是未登记的用户可以直接下载文件(例如http://my-site.pl/files/secret_file.pdf)。
如何防止这种情况,某些插件,.htaccess?
我的网站位于共享主机上,我只能通过ftp访问。
答案 0 :(得分:0)
有潜在的解决方案,但没有一个在实践中脱颖而出 - 每个都有自己的一套荆棘。
有一些商业插件可以对部分或全部WP站点实施访问限制。有些允许限制文件,有些则不允许。 Amember是该领域最成熟的球员之一。 (但我不能推荐他们的报价。在遇到的其他问题中,它在多服务器设置上效果不佳。)自从我上次检查以来,可能有一些免费的插件也是如此。
如果您决定自己编写代码,可以选择多种选项。其中三个包括:
使用php代替Apache提供文件,并要求用户在提供文件之前登录。有用。如果您决定马虎,那么设置相对容易。如果你想正确设置它并不容易:想想需要恢复的部分文件等等。
使用Apache有条件地提供文件。实质上,您在令牌文件夹中创建一个特定于用户的文件,并在用户登录时将该文件的名称存储为cookie。然后,如果相应的文件不存在,则让Apache重写规则拒绝访问。令牌文件夹。这不容易设置
根本不限制文件并将内容保留为目前的状态:指向只有成员才能看到的公开文件的链接。这里理性的是,无论你如何限制对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