簡體   English   中英

如何保護公共圖像上傳文件夾免受操縱/直接訪問

[英]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的問題表示歉意。 我盡量簡潔,因為我對編程的了解有限。 在此先感謝您的時間和精力,以幫助您。

兩種方式

  1. 在每個目錄上寫一個空白的index.html ,它將禁止訪問文件。
  2. .htaccess中寫下以下內容(如果不存在,請創建此文件)

     Options -Indexes 

    或如果您不想在局域網外進入

     # no nasty crackers in here! order deny,allow deny from all allow from 192.168.0.0/24 # this would do the same thing.. #allow from 192.168.0.0 to 192.168.0.24 

參考
多一個

您想向每個所有者客戶展示大拇指,而不向其他客戶展示? 知道訂單號(序列號),您可以輕松地嘗試一些鏈接並查看一些照片。

我建議使用.htaccess為上載文件夾設置密碼,並為必須歸屬於訂單號的每個拇指生成一個哈希號。

第二種解決方案:使用.htaccess密碼訪問上載文件夾並在生成訂單確認頁面時生成拇指,而無需保存拇指。 (您只需提及一次,他就只能看到它)。

玩得開心!

您應該做的兩件事是:

禁用目錄索引。

始終保持文件名隨機。 使用數據庫映射它們。 即file1.jpg-> file_af324234324324ff。 您也可以將縮略圖文件信息存儲在同一表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM