2011-04-07 61 views
1

我如何保護包含上傳文件的文件夾?如何保護包含上傳文件的文件夾?

我有文件夾,包括由我上傳的所有文件,我想如果用戶試圖更改URL或者通過顯示所有文件,瀏覽器重定向他到另一個頁面這樣的例子

www.tet.php /文件夾/text.doc

如果用戶嘗試寫(www.tet.php /文件夾),以顯示所有文件重定向他自動www.tet.php

或任何一個,請告訴我取巧的辦法消失/文件夾/

+0

什麼是您的網絡服務器? IIS的Apache的還是? – 2011-04-07 09:00:28

+1

可能重複[我如何防止公衆使用PHP下載文件?](http://stackoverflow.com/questions/2339649/how-do-i-prevent-public-downloads-of-files-using-php) – deceze 2011-04-07 09:01:53

回答

0

我不知道PHP,但一個解決方案我想和不知道如果PHP可以處理或不:

你可以把你的「UsersUploads」文件夾放在網站目錄之外,所以如果你的網站存在於「c:\ website \ example.com」你可以把「UsersUploads」放在那裏「c:\ UsersUploads」,就像你的web服務器不能控制這個文件夾及其文件一樣,你的網站代碼仍然可以作爲普通物理路徑訪問這個目錄。

0

如果您使用Apache,你有2個解決方案:

  • 將您的文件夾uploaded_files出你的DocumentRoot(該文件夾 是從 網絡訪問的根)的 。

  • 使用該文件夾中的.htaccess文件 來阻止對該文件夾的訪問。

使用身份驗證來訪問該文件夾一個.htaccess的一個小例子:

AuthName "Page d'administration protégée" 
AuthType Basic 
AuthUserFile "/var/www/uploadedfiles/.htpasswd" 
Require valid-user 
0

如果您使用IIS,那麼你必須通過你們IIS管理爲拒絕訪問該文件夾爲大家安慰。除了某些IP地址或地址範圍外,您還可以拒絕任何訪問。

0

只是爲了擴大對@紀的答案,包括有關重定向到一個頁面上失敗的部分:

AuthName "Page d'administration protégée" 
AuthType Basic 
AuthUserFile "/var/www/uploadedfiles/.htpasswd" 
Require valid-user 
ErrorDocument 403 www.urlToRedirectTo.com 

而且,.htpasswd則應該放在Web根目錄之外的,應該只包含username:pasword。密碼應該散列。您可以輕鬆地在線查找實用程序以爲您創建這些文件。

+0

oky和我如何設置密碼,我不知道有關htaccess的任何事情 – user646645 2011-04-07 09:46:48

+0

使用此表格http://www.htaccesstools.com/htpasswd-generator/生成加密密碼。將結果頁上文本框中的文本複製到位於AuthUserFile行指向的路徑中的名爲'.htpasswd'的文件中。同樣,出於安全原因,這應該不在Web根目錄中。 – 2011-04-07 09:56:02