2011-09-15 22 views
2

我們正在爲客戶製作一個社交網站(課程的最終項目),他希望有一個照片上傳功能。將上傳的照片信息存儲在數據庫中的指導

我們考慮將一個鏈接放在MySQL數據庫中,圖片的唯一ID以及用戶ID的外鍵。

但我想知道什麼是最安全的方法。

  1. 我們應該保留圖片名稱還是重命名它?
  2. 我們應該保持的所有照片的文件夾內,或爲每個唯一的用戶ID一個單獨的文件夾?
  3. 如果我們重命名的圖片,我們應該只與圖片中的唯一的ID開始? (1到XXXX)

安全:任何類型的惡意文件名 explointing的最快:具有1個文件夾然後XXXXX夾

+1

我將創建用戶目錄,並留下該圖像的名稱不變。這樣,下載或直接查看照片時將具有有意義的名稱。 – feeela

+1

你應該解釋你的安全是什麼意思。 – Mikk

+0

我編輯它! 。 – Insecurefarm

回答

2

對於上傳的圖像I將在圖像重命名爲用戶ID-圖像標識這樣的圖像可被命名爲123-5554.jpg例如,這將它們分組由用戶ID,同時保持它們在同一文件夾(使用分選),併爲每個圖像提供一個唯一的名稱。

如果您不重命名圖片,有人可以不止一次輕鬆上傳名爲picture.jpg的圖片。

+0

或者至少將imageid添加到圖像名稱的末尾,以便它保持其有意義的名稱(如果有的話)@feeela建議 – thegaffney

+0

這看起來像最好的awmser atm – Insecurefarm

+0

@Vincent Matte如果你想要一個描述性的名字對於圖像你可以只在您的數據庫中添加圖片說明字段表格上的圖像上傳字段一起,和粗糙的形象描述字段中的圖像表。你可以讓100個人稱爲「我的房子」,但每個圖像仍然有一個唯一的文件名。 – thegaffney

0

我會改變每個圖片的文件名,以獨特的東西。每張圖片在表格中都應該有一個唯一的ID。然後你可以在圖片的唯一ID上設置一個外鍵給用戶的ID。

你的第二個問題是你自己的偏好,取決於你想要的結構類型。我會爲每個用戶創建一個單獨的文件夾,如果有大量數據,它會更直觀,更容易瀏覽。

+0

如果同一用戶上傳從我從我的圖片文件和picture.jpg picture.jpg,和他們不同的圖片?它會覆蓋舊圖片,或者您必須測試圖片是否已存在於服務器文件夾中,並告訴用戶他們不能這樣做,並強制他們在個人計算機上重命名圖片。 – thegaffney

+0

我發現它真的很煩人,當一個網站要求我將其重命名爲本地 – Insecurefarm

相關問題