我創建的自動租賃文件,如租賃,擴展,通知等應用程序創建的創建和保存在一個指定的文件租金PHP應用程序相同的目錄目錄作爲word文檔。PHP - 使用會話變量保護的.docx文件中
我的應用程序需要用戶登錄並使用會話變量驗證登錄。我的問題是如何保護包含已完成租賃文檔的/ docs /目錄?如果有人知道這個目錄存在,他們可以簡單地將其輸入瀏覽器。我向這個目錄添加了一個空白的index.html文件。這可以防止顯示文件名稱。我只是想知道什麼是保護該目錄的最好方法,因爲它會包含個人信息的文檔?
我創建的自動租賃文件,如租賃,擴展,通知等應用程序創建的創建和保存在一個指定的文件租金PHP應用程序相同的目錄目錄作爲word文檔。PHP - 使用會話變量保護的.docx文件中
我的應用程序需要用戶登錄並使用會話變量驗證登錄。我的問題是如何保護包含已完成租賃文檔的/ docs /目錄?如果有人知道這個目錄存在,他們可以簡單地將其輸入瀏覽器。我向這個目錄添加了一個空白的index.html文件。這可以防止顯示文件名稱。我只是想知道什麼是保護該目錄的最好方法,因爲它會包含個人信息的文檔?
瑞安感謝您的諮詢。正如你所建議的那樣,我將這些文件保存在文檔根目錄之外,並使用此代碼訪問它們。
<?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
不要忘了消毒GET參數...這是乞求濫用。至少檢查../或其他東西。此外,文件存在檢查:)。總是期望有人破壞你的代碼,所以你應該先破壞它。 – Thomas
保存文件中的目錄'document_root'之外。也許有趣? http://stackoverflow.com/questions/13357994/access-a-file-which-is-located-before-outside-the-server-root-directory –