允许文件仅由服务器访问

允许文件仅由服务器访问

我正在构建一个在某些时候可以查看 PDF 文件的系统。

这些文件需要锁定,以便系统外的任何人都无法查看它们。这意味着这些文件不能直接访问,只能由服务器访问以显示给用户。

我有一个documents如下所示的文件夹:

.htaccess
test.pdf
test.txt

在我的.htaccess中,我有以下内容:

Order Allow,Deny
Deny from all

这实际上阻止我直接访问该文件example.com/documents/test.pdf

不过,我仍然需要在我的系统内查看该文件,但它也无法使用直接 URL 加载它。因此,我在documents文件夹外创建了一个名为 的文件load_pdf.php。该文件如下所示:

header("Content-Type: application/pdf");
$pdf = file_get_contents('documents/test.pdf');
echo $pdf;

成功了!我可以像这样嵌入文件:

<embed src="/load_pdf.php"></embed>

但是,有一个问题,任何人都可以load_pdf.php直接在浏览器中加载,从而显示本不应该被访问的 PDF 文档。

有什么方法可以阻止load_pdf.php加载,除非它正在由我的元素中的服务器加载<embed>

答案1

您可以指定要访问文件的 IP 地址,或者如果您已登录,则使用特定的电子邮件 ID 来允许查看。

您可以在 load_pdf.php 开始时指定所有这些内容

答案2

没有。

https://stackoverflow.com/questions/4930914/prevent-pdf-file-from-downloading-and-printing

最终你需要:

  • 为每个页面创建图像

  • 通过您自己的界面(html、flash 等)在网络上向用户呈现这些内容

答案3

您可以按照以下步骤进行操作:-

<Files *test.pdf>
    Order allow,deny
    Deny from all
</Files>

<Files *test.txt>
    Order allow,deny
    Deny from all
</Files>

相关内容