我正在建立一個系統,有時會使用檢視 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>