.htaccess 使用pdf.js查看pdf,但禁用对pdf的直接访问(阻止下载)

.htaccess 使用pdf.js查看pdf,但禁用对pdf的直接访问(阻止下载),.htaccess,pdf,view,download,pdf.js,.htaccess,Pdf,View,Download,Pdf.js,我非常赞同PDF.JS,但现在我需要一些帮助。 我用pdf.JS在线加载(查看)pdf文件,但我需要不下载的文件。我设法从HTML中删除了下载按钮/函数,但现在我需要知道如何防止直接访问(而不妨碍PDF.JS阅读)。 有什么想法吗?:)谢谢你不能。您可以使用适当的工具下载通过浏览器的任何内容,即使您使用javascript加载它。例如,Firefox的“DownloadHelper”插件将捕获任何内容,从youtube视频到脚本动态下载的简单图像 防止这种情况发生的唯一方法是使用第三方插件,它可

我非常赞同PDF.JS,但现在我需要一些帮助。 我用pdf.JS在线加载(查看)pdf文件,但我需要不下载的文件。我设法从HTML中删除了下载按钮/函数,但现在我需要知道如何防止直接访问(而不妨碍PDF.JS阅读)。
有什么想法吗?:)谢谢

你不能。您可以使用适当的工具下载通过浏览器的任何内容,即使您使用javascript加载它。例如,Firefox的“DownloadHelper”插件将捕获任何内容,从youtube视频到脚本动态下载的简单图像

防止这种情况发生的唯一方法是使用第三方插件,它可以在不使用浏览器的情况下下载内容。Adobe Flash的RTMP协议就是一个例子。它绕过了浏览器,所以其他插件看不见它


但我认为您不想在flash中编写PDF查看器,这样就没有人可以下载它。

您可以通过.htaccess阻止对文件的直接访问:

# Block direct access to PDF
RewriteCond %{REQUEST_URI} \.pdf$ [NC]
RewriteCond %{HTTP_REFERER}  !YOURDOMAIN\.COM [NC]
RewriteRule .* http://YOURDOMAIN.COM/forbidden

您还需要防止缓存pdf文件

根据您的想法:使用WebRTC或WebSocket传输pdf内容。你不需要传输整个文件——PDF.js可以请求PDF文档范围。我不知道这是如何工作的,甚至这只是混淆,但我同意用户不太可能愿意花时间从页面重新组装PDF。这超出了PDF.js的范围,无法在传输过程中“隐藏”内容。PDFJS.getDocument可以接受Uint8Array,因此可以根据需要对其进行加密。不过,这并不是秘密,只是为了防止盲目下载文件。作为替代方案,在每个PDF文件上放置一个随机密码也可以达到同样的效果——这也是一种挑战,因为任何web开发人员都可以窥视JS源代码并提取此密码。