2017-01-22 40 views
0

我創建的自動租賃文件,如租賃,擴展,通知等應用程序創建的創建和保存在一個指定的文件租金PHP應用程序相同的目錄目錄作爲word文檔。PHP - 使用會話變量保護的.docx文件中

我的應用程序需要用戶登錄並使用會話變量驗證登錄。我的問題是如何保護包含已完成租賃文檔的/ docs /目錄?如果有人知道這個目錄存在,他們可以簡單地將其輸入瀏覽器。我向這個目錄添加了一個空白的index.html文件。這可以防止顯示文件名稱。我只是想知道什麼是保護該目錄的最好方法,因爲它會包含個人信息的文檔?

+1

保存文件中的目錄'document_root'之外。也許有趣? http://stackoverflow.com/questions/13357994/access-a-file-which-is-located-before-outside-the-server-root-directory –

回答

0

瑞安感謝您的諮詢。正如你所建議的那樣,我將這些文件保存在文檔根目錄之外,並使用此代碼訪問它們。

<?php 
header('Content-Description: File Transfer'); 
header('Content-Type: application/msword'); 
header('Content-Disposition: attachment; filename="'.$_GET['doc'].'"'); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($doc)); 
readfile("../test/" . $_GET['doc']); 
?> 

要訪問這些文件,我在鏈接到上面的代碼的url中包含文件名。 EX。 http://example.com/test.php?doc=filename.docx

+1

不要忘了消毒GET參數...這是乞求濫用。至少檢查../或其他東西。此外,文件存在檢查:)。總是期望有人破壞你的代碼,所以你應該先破壞它。 – Thomas