2015-05-04 29 views
0

我想了解如何在網站上進行身份驗證。我不是要求代碼,我試圖理解這個概念。當用戶第一次訪問網站時,他/她會登錄,我的服務器會對其進行身份驗證。但是當用戶移動到下一頁時,由於http是無狀態的,服務器如何知道當前用戶是已登錄的同一用戶?第一次請求後如何進行身份驗證?

我想到了幾種方法,如下所示,但我不相信他們會完美地工作。對於插件,它們可能效率不高。

  • 發送userid/password在每個請求 - 非常糟糕的設計,因爲用戶名/密碼可以被黑客攻擊!
  • 使用cookies - 它也有缺陷,用戶可以將cookie發送給他/她的朋友,然後我的服務器將處於模糊狀態:

有沒有更好的方法來認證用戶後續請求?

注意:我不能使用https協議,因爲它是慢http也有一些商業上的原因。

回答

0

您可以使用一個持有會話應持續多長時間的令牌。並且該令牌將隨每個請求一起發送(您要使用它)並且被驗證@服務器。

我想令牌好的帖子是這個:What is token based authentication?

+0

的朋友可以訪問來自用戶計算機(類似餅乾)令牌或通過網絡?如果是,那麼這可能沒有用:|。我的意思是,假設令牌是'abcd',那麼黑客可以通過Web請求向服務器發送相同的令牌並掩蓋用戶的身份,不是嗎? – Abhishek

+0

從計算機可能是的,如果你使用HTTPS,那麼網絡應該是安全的。令牌可能包含用戶的IP,以確保相同的令牌不能從另一個網絡使用。 –

+0

如果可以從計算機複製,那麼它是不安全的,類似於cookie。我們不能使用ip,因爲ip可以被屏蔽:|。在這裏,我假設用戶想破解/入侵我的服務器。 'https'是一個選項,但不是解決方案,對吧?無論如何,我不能使用HTTPS我的問題:( – Abhishek

相關問題