2009-12-16 102 views
0

我正在編寫一個Web應用程序,允許用戶在應用程序上上傳文件。用戶點擊「上傳」按鈕後,該文件將被上傳到HTTP服務器。用戶可以通過從路徑中獲取文件來接收文件....例如:http://www.demo.com/user/abc/download/the_file.jpg如何限制用戶訪問HTTP服務器上的文件?

但我發現所有人都可以使用該路徑訪問此文件。我該怎麼辦,還是有更好的方法來管理文件,只有註冊用戶或文件所有者可以下載文件?

+0

我的回答有幫助嗎? – Ahmy 2009-12-23 09:28:47

回答

1

由於性能問題,直接在腳本中提供文件不是一種選擇,而且由於內存限制,不可能爲BIG文件提供服務。

最好的選擇是使用Apache模塊mod_xsendfile。這個想法是將所有的請求重定向到一個PHP/Perl/Python腳本,它只會設置一個HTTP標頭,說「嘿Apache,服務這個文件,而不是」,mod_xsendfile會照顧它。

而客戶端將永遠無法下載沒有這種身份驗證的文件。

1

如果使用諸如apache httpd之類的東西,您可以使用.htaccess文件,並且如果您希望用戶繼續訪問文件系統路徑上的文件,則可以爲用戶或組提供目錄。

如果你鎖定的目錄,並有一個腳本來管理文件傳遞,你可以在腳本檢查權限,併爲該文件要求的用戶或403

我傾向於使用腳本方法,因爲它使我可以更好地控制權限的管理方式和更復雜的訪問方案。

相關問題