2015-08-25 60 views
1

在我的應用程序中登錄的用戶可以下載pdf文件。但我需要的不僅是限制下載文件給授權用戶,而且還要以某種方式安全地下載文件,授權用戶無法找出其他文件的可能名稱。 例如使用Express.js/Node.js進行安全文件下載

/files/fileName1.pdf 
/files/fileName2.pdf 
/files/fileName3.pdf 

這是一個非常原始的例子,它演示了一個很容易猜測其他文件名稱的情況。

一個可能的解決方案可能是爲每個文件名添加一個散列,以避免爲了使文件名具有可讀性。

另一種解決方案可能是爲每個文件創建一個存儲文件名(mongodb ID看起來很複雜)的記錄的散列或_id,並將其用作參數。 例如

/files/da39a3ee5e6b4b0d3255bfef95601890afd80709/fileName1.pdf 

在這種情況下,要下載fileName2.pdf,需要一個散列,這是不現實的猜測。

但我不知道是否有更好的解決方案呢?

回答

0

您可以使用passport.js來編寫標識+認證+授權機制。

但我想你不想放鬆時間來實現許多其他人已經完成的事情。看看mean.js項目生成器。它會生成一個節點項目,並具有註冊,驗證等機制。

玩得開心!

+0

我擁有這一切。我唯一關心的是安全文件下載過程 – user2814599

+0

安全只意味着「在您接受的安全級別」。我喜歡不可猜測的URL的解決方案,並且我已經在一個項目中使用它。例如,如果URL包含UUDI,則可以將其視爲不可猜測。 – Remy

0

Chance.js是隨機字符串,數字等的簡約生成器,有助於減少一些單調性,特別是在編寫自動化測試或任何其他需要隨機任何東西的地方。 http://chancejs.com/