2011-09-26 74 views
2

我使用的是php和MYSQL。我創建了一個會員區,用戶可以上傳重要圖片(基本上用於財務記錄)。我希望得到一些關於存儲這些文件的最佳方式的建議。什麼樣的文件夾結構最好? Ex domain.com/Files/UserName/RandomGeneratedName/Files。上傳文件並保持安全

此外任何建議chmod,.htaccess,.htpassword和任何形式的密碼保護與PHP。

在此先感謝。

+0

我將使用.htaccess和.htpassword組合 – elibyy

+1

您可以將這些文件存儲在WWW根目錄之外,並通過帶有內容頭的PHP腳本來提供內容。 – Scuzzy

+0

我正在考慮將這些文件存儲在哈希目錄中,有什麼想法?我也會研究這些建議。 – busycoding

回答

3

我會建議將它們存儲在樹外。這樣,默認情況下,您需要啓用對它們的訪問,而不是禁止訪問(如果您在.htaccess/config/code中存在錯誤,則禁止訪問文件,不啓用)

Second ,擺脫隨機目錄,它不會增加太多的安全性,但它不必要地執行變得複雜

您可以使用PHP來檢查成員憑據,把適當的標題(mime類型爲例如,etag等),並通過passthru或類似的服務文件。

1

最好的辦法:

  • 保護的目錄.htaccess的
  • 添加一個index.html到目錄「以防萬一」
  • 使用隨機的文件名,並將其存儲在目錄
  • 使用php/mysql來檢查用戶是否有權訪問您的文件

示例: 您有一個fil e in domain.com/protecteddir/sdjasdu83299sdnYUsb.dat

您可以使用php/mysql將用戶發送到虛擬目錄下載文件。你可以通過php來拋出正確的文件頭+文件名。所以即使該文件被稱爲sdjasdu83299sdnYUsb.dat,用戶也可以將其下載爲「myfinancial.doc」

用戶永遠不會知道真實文件的位置和名稱。

.htaccess文件應包含:在保存文件的文件夾,所以當有人想:

<Files *> 
Order Allow,Deny 
Deny from All 
</Files> 
0

,你可以對的.htaccess URL重寫,並獲得index.php文件(編寫代碼)進入這個文件夾: 第一:他不知道真正的地址 秒:由於有一個index.php提供的主頁,他無法進入。