即時通訊建立一個小型網站,允許用戶上傳和下載他們的個人文件從服務器。 Codeigniter被用於該項目,並使用file uploading class來上傳文件。限制,只有相關的上傳者可以下載他們的文件
問題是我如何確保只有上傳文件的人可以下載它。目前所有的文件都上傳到localhost/curious/uploads
。儘管文件只對上傳者可見,但如果他們共享上傳鏈接,則任何人都可以下載該文件。
因此,如果Steve上傳一個名爲secure_rom.doc
的文件,路徑爲localhost/curious/uploads/secure_rom.doc
,那麼任何擁有該鏈接的人都可以下載該文件。
怎麼可能確保只有上傳者可以從下載區下載而不是其他人?
不知道你的情況太多了,可能是最簡單的方法是有內部的子文件夾/上傳,命名與用戶的用戶名,所以/ uploads/LiveEn只能通過LiveEn訪問,並且/uploads/emma.fn2只能通過emm訪問a.fn2。 – 2013-04-20 14:31:58
@ emma.fn2我確實嘗試過,但限制無法正常工作。所以當他們登錄時只有用戶可以訪問該文件夾,但如果有人共享鏈接,他們可以直接下載ID。 – LiveEn 2013-04-20 14:39:42
您是否正在進行任何檢查以查看嘗試連接的人是否已登錄到您的網站,並且有權下載?如果沒有,你應該做的是設置一個rewriterule,它將匹配/uploads/username/file.xyz,並將其傳遞給一個下載控制器文件,例如檢查$ _SESSION ['username'],並將其與文件夾名稱(將來自URL)。只要確保將文件放在可見Web目錄之外,這樣它們就不能直接從URL下載。這可能是爲什麼它不起作用。如果那有意義的話!?對不起,如果它不大聲笑。 – 2013-04-20 14:42:26