[英]How to protect a public image upload folder from manipulation/direct access
我已經找到了這個問題的幾個答案,但是每種情況都與我的不同。 在花數小時實施我認為可行的方法之前,我想先發表一兩次意見。 誰知道呢,也許有一個更簡單的解決方案也能使其他人受益!
我正在創建一個提供照片修改服務的網站。 我的每個客戶都將使用在Github上找到的jQuery / PHP上傳腳本的修改版本( BlueImp的File Upload腳本支持BlueImp!)上傳他們的照片。完成每張圖像的上傳后,圖像的縮略圖會顯示在旁邊。圖片的文件名。
上載頁面根據其訂購號創建一個文件夾,以及一個用於存儲圖像的縮略圖子文件夾。 例如,對於12345號訂單:
/ uploads / 12345 <-上載圖片的文件夾
/ uploads / 12345 / thumbs <-從中提供縮略圖的文件夾
客戶不要訪問其他客戶的照片,這一點很重要。 我將上載文件夾移到了我的網站根目錄之外,但是當圖像完成上傳時,縮略圖沒有顯示,因為,好了,它們不在網站根目錄中,因此鏈接無法正常工作。
這是我想到的解決方案:
分開文件夾。 將主上載文件夾移至文檔根目錄之外,但將縮略圖文件夾保留在文檔根目錄內,以便在每次上載完成后即可提供縮略圖。 用戶上傳完圖像后,刪除與該訂單號相對應的縮略圖文件夾。
有更好的方法嗎? 我擔心的是禁止訪問照片(客戶端只需要上傳一次,然后等待我們完成修改即可。他們不必重新登錄即可下載它們。)我不希望有人能夠通過地址欄或其他任何位置訪問上傳文件夾。 我可以使用.htaccess文件限制訪問,但仍然允許通過上傳腳本鏈接到縮略圖嗎?
我為羅word的問題表示歉意。 我盡量簡潔,因為我對編程的了解有限。 在此先感謝您的時間和精力,以幫助您。
您想向每個所有者客戶展示大拇指,而不向其他客戶展示? 知道訂單號(序列號),您可以輕松地嘗試一些鏈接並查看一些照片。
我建議使用.htaccess為上載文件夾設置密碼,並為必須歸屬於訂單號的每個拇指生成一個哈希號。
第二種解決方案:使用.htaccess密碼訪問上載文件夾並在生成訂單確認頁面時生成拇指,而無需保存拇指。 (您只需提及一次,他就只能看到它)。
玩得開心!
您應該做的兩件事是:
禁用目錄索引。
始終保持文件名隨機。 使用數據庫映射它們。 即file1.jpg-> file_af324234324324ff。 您也可以將縮略圖文件信息存儲在同一表中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.