我有一個員工可以上傳文件的系統。有三種方式通過Web保護文件:基於細粒度授權的文件訪問
上傳到我的帳戶在公共,私人或保護模式
上傳到部帳戶在公共,私人或保護模式
上傳到組織帳戶公共,私人或保護模式
哪裏公衆對任何人都是公開的,只對組織或個人是私人的,並且對組織中的任何人都有保護。
所有對一個組織的文件存儲在一個目錄,那麼/文件/ <organizationId> /,文件服務器上 像
文件
+ - 234809
| + img1.jpg
| + doc1.pdf
+ - 808234
| + doc2.pdf
我在DB中存儲文件路徑和隱私級別。所以,我可以控制是否在給定頁面上顯示鏈接到用戶的文件URL。
問題是,我沒有任何控制文件的URL ...所以,如果有人在他的瀏覽器的地址欄中鍵入img1.jpg的URL,則無法知道登錄用戶是否有資格看到img1.jpg。
有什麼建議嗎?
它是一個Java應用程序。但是,Glassfish有一個獨立的實例作爲文件服務器。由於該應用尚未發佈,因此我們願意採用更好的文件訪問策略。
正在訪問文件的用戶可能會也可能不會登錄。但是,如果我們知道正在訪問的文件是私人文件或共享文件,我們可以通過重定向到登錄頁面來對用戶進行身份驗證。
感謝
NISHANT
是的,這是整潔。在這種方法中,URL可能具有文件的上下文。像http://abc.com/downloads/[some-encrypted-key]/img1.jpg,HTTP處理程序將根據用戶憑證和密鑰的必需許可推斷出可訪問性。但是機器人仍然可以繼續嘗試並訪問它,儘管可能性很低。 最近我在想什麼,也許我可以有一個元數據文件附加到每個文件像img1.jpg有一個文件img1.md,當用戶訪問該文件處理程序讀取元數據和驗證。但是,在帶有100個文件的頁面上閱讀文件可能會很痛苦。 – Nishant 2010-03-22 19:07:29
@Nishant - 在您的問題中澄清您正在使用的平臺,以及將訪問「下載」的用戶是否通過登錄身份進行身份驗證,然後我們可以從那裏進行身份驗證。 – 2010-03-22 19:34:48
它是一個Java應用程序。但是,Glassfish有一個獨立的實例作爲文件服務器。由於該應用尚未發佈,因此我們願意採用更好的文件訪問策略。 正在訪問這些文件的用戶可能會也可能不會登錄。但是,如果我們知道正在訪問的文件是私人文件或共享文件,我們總是可以通過重定向到登錄頁面來對用戶進行身份驗證。 – Nishant 2010-03-22 20:36:25