Htaccess - 仅允许从pdf.js访问文件

时间:2018-06-05 10:26:23

标签: .htaccess pdf.js directory-listing

我的.htaccess文件有问题。

为防止下载或打印pdf文件,我使用PDF.js阅读内容。 现在我想禁用与这些文件的直接http连接。 在pdf.js文件夹中,我放了一个名为" doc"的目录,其中包含所有项目和.htaccess:

Order allow,deny
Deny from all
<Files  ~ "viewer\.html$">
    Allow from all
</Files>

其中viewer.html是包含文档阅读器的页面。 所以,当我尝试从浏览器访问

localhost:8080/test/pdfjs/web/viewer.html?file=doc/mondia.pdf

我得到:

Unexpected server response (403) while retrieving PDF "../test/pdfjs/web/mondia.pdf"

我哪里错了?

3 个答案:

答案 0 :(得分:2)

如果PDF.js在用户的Web浏览器中运行,则用户需要能够下载PDF文档。 Apache无法(可靠地)告诉用户计算机上的&#34; PDF.js之间的区别&#34;和#34;用户计算机上的谷歌浏览器&#34; - 两者都是来自用户计算机的资源的HTTP请求。

如果您真的想要,您可能会在请求PDF时检测到PDF.js设置的某些标头,并拒绝没有该标头的请求。这将阻止临时用户直接访问该文件,但任何在浏览器中按F12的人都可以看到PDF正在下载PDF.js并从那里保存内容。

即使您以PDF以外的其他形式提供服务,用户也可以复制并粘贴生成的HTML,或者截取屏幕呈现的方式。

阻止用户使用自己的计算机做某事基本上很难;如果他们可以在屏幕上阅读某些内容,您已将其以某种形式发送给他们。要真正阻止它们,你需要一个值得信赖的&#34; DRM&#34;加密系统直接呈现屏幕而不会使用户可以访问解密数据。在绝大多数情况下,这将是完全矫枉过正的,并且只是惹恼了您的用户(例如,盲人用户可能无法访问内容,因为他们的屏幕阅读器软件将不受信任)。

答案 1 :(得分:1)

您可以尝试使用此插件

https://it.wordpress.org/plugins/editionguard-for-woocommerce-ebook-sales-with-drm/#description

或类似的, DRM是wordpress网站的最佳解决方案。

或者尝试使用pdf-js

中的标题

How to set range header from client with pdf.js?

答案 2 :(得分:-1)

请编辑Vtiger_root_location / storage中存在的.htacess文件 如下添加“ pdf”选项: