將檔案上傳到服務器后,我將檔案路徑存盤在資料庫中。
http://localhost/ramseyer/apps/uploads/-d10ddbe8164659168192848723610514347.docx
由于我正在構建的平臺具有用戶訪問級別,我意識到即使用戶沒有通過授權登錄,用戶仍然可以訪問該檔案,前提是他們以某種方式知道了 URL。
我讀過很多關于路徑遍歷的文章,但沒有找到答案。
有沒有辦法禁止試圖在地址欄中輸入檔案 URL 以訪問檔案的用戶?就像您禁止用戶使用 htaccess 訪問目錄一樣?
uj5u.com熱心網友回復:
您可以像這樣使用 RewriteRule:
RewriteRule ^(.*)\.(pdf|docx)$ download.php?file=$1&ext=$2
請在此處查看檔案:https ://httpd.apache.org/docs/current/mod/mod_rewrite.html
在下載檔案中,您應該首先檢查用戶憑據,然后輸出檔案內容 標題。
// check credentials...
$filename = $_GET['file'] . '.' . $_GET['ext'];
$filename_url = $path_to_file . '/' . $filename;
header('Content-Disposition: attachment; filename="' . $filename . '"');
header("Content-Type: text/" . $_GET['ext']);
header("Content-Length: " . filesize($filename_url));
echo file_get_contents($filename_url);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/439129.html
上一篇:php檔案的404路徑
下一篇:在熱鏈接中添加子域作為例外
