允許文件僅由伺服器訪問

允許文件僅由伺服器訪問

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

相關內容