2012-07-14 64 views
2

我正在研究一個需要存儲另一個網站的用戶密碼的asp.net網站,以便我可以定期檢索數據,而不需要用戶繼續登錄。我無法想象單向散列會如何工作這種情況下,因爲用戶不會每次都重新輸入密碼。我假設我需要加密密碼以存儲在SQL Server數據庫中,並在需要時將其解密。但這就是我遇到困難的地方。基礎架構是在負載平衡的Azure計算實例上運行並將數據存儲在SQL Azure中的C#/ Asp.Net MVC3網站。我不是一個加密人,我不想犯新人的錯誤。這裏似乎有很多信息,但是對我來說似乎沒有任何明確的信息。即使我連接的數據不敏感,我也希望以我希望處理個人數據的同樣的方式來對待用戶的信息。任何意見如何進行將不勝感激。以編程方式將用戶登錄到第三方網站(何時OAuth不可用)的最佳方式?

編輯: 我當然明白,存儲密碼不是最佳實踐,但在某些情況下,它是不可避免的。我遇到過這個項目,但還沒有嘗試過:http://securentity.codeplex.com/。它在Web服務器上使用數字證書。

第三方網站的用戶可以將其數據設置爲「公開」,在這種情況下,我不需要存儲他們的密碼。所以我可以讓用戶選擇這樣做。

+0

我沒有超過第一行。如果你正在存儲密碼,那麼你做錯了。 – 2012-07-14 03:21:29

+0

我還沒有做任何事情,這就是爲什麼我要問一個問題。 – 2012-07-14 03:47:39

回答

1

你應該看看OAuthSingle Sign-On
簡而言之:僅在不同系統之間發送身份驗證令牌。

你(該網站)應該從來沒有有關於用戶密碼的知識。至多你應該知道散列的密碼你的網站。

閱讀上述兩個主題,您將知道如何正確保護您的「鄰居」網站。

編輯

在短:
其他位點(位點B)實現的OAuth服務器進程。您的網站(網站A)實施OAuth客戶端身份驗證。當從站點B請求用戶信息時,您將用戶重定向到站點B身份驗證,以允許站點A從站點B讀取關於用戶的信息。站點B創建一個站點A可以用來訪問信息的令牌。該令牌可以是時間限制的(或不是)。

+0

但是,我無法控制的第三方網站是否必須提供OAuth實施? – 2012-07-14 03:45:49

+0

當然它......如果第三方沒有實現OAuth或某種單點登錄,那麼我強烈建議不要這樣做,因爲它對任何部分都不安全。信息不可信。 – 2012-07-14 03:47:53

+0

在沒有OAuth或單一登錄的情況下訪問第三方網站(您無法控制)的唯一方法是存儲密碼。就我而言,這不是一個可以接受的解決方案。如果他們想分享信息,你需要說服第三方網站實施更好的安全計劃。 – 2012-07-14 03:54:30

相關問題