如何防止直接访问PDF文件

时间:2016-10-03 作者:user12

我试图保护pdf文件不被直接下载。我正在使用PDF Embedder插件嵌入PDF文件,这是阻止其下载的第一步。然后使用JS,我禁用了鼠标右键单击、CTRL+快捷键。当浏览器检测到JS已停用时,我插入了一个重定向。我在我的方法中发现了一些“漏洞”,有人可以抓住链接。所以在我的。htaccess I已添加

 RewriteCond %{HTTP_REFERER} !^http://(www\\.)?localhost/ [NC] 
 RewriteRule \\.(pdf)$ - [F,NC]
因此,如果有人试图直接访问pdf文件,则会出现403错误。它只起到部分作用。如果我直接输入URL,我会得到一个403错误。如果加载包含pdf文件的页面,然后直接使用URL,则会显示pdf查看器选项卡,并启用下载选项。在几次重新加载之后,缓存被清空,“服务器”开始出现403错误。我应该怎么做才能使用插件显示PDF并立即阻止对文件的直接访问?

1 个回复
SO网友:Rarst

您不能同时允许访问文件(通过嵌入)和禁止访问文件。这是不现实的,你把时间浪费在了洞上。

该注释非常正确,您需要从受保护的位置流式传输文件以进行访问控制。即使这样,如果客户端查看器可以访问它,那么将文件本身取出也不是问题。

请注意,WordPress核心完全设计为驻留在web可访问的位置。将一些媒体从中分离出来,并实现流媒体,这是一种快速而琐碎的定制。

相关推荐