SunlightDB 安全策略(一)

SunlightDB 安全策略之一——基於Token的身份驗證機制,已經在很多超大型網站中應用,比如Facebook,Twitter,Google,Github 等等,比起傳統的身份驗證方法,Token驗證擴展性更強,更安全,非常適合用在Web應用或者移動應用上。
傳統身份驗證方法
Cookie驗證是一種比較傳統的HTTP安全策略。Cookie驗證機制就是爲一次請求認證在服務端創建一個Session對象,同時在客戶端的瀏覽器端創建了一個Cookie對象;通過客戶端帶上來Cookie對象來與服務器端的Session對象匹配來實現狀態管理的。默認的,當我們關閉瀏覽器的時候,cookie會被刪除。但可以通過修改cookie 的過期時間使Cookie在一定時間內有效。
基於 Token 的身份驗證方法
使用基於Token的身份驗證方法,在服務端不需要存儲用戶的登錄記錄。基本流程如下:
(1)客戶端使用用戶名密碼請求登錄;
(2)服務端收到請求,驗證用戶名與密碼。驗證成功服務端簽發一個Token,再把這個Token發送給客戶端;
(3)客戶端每次向服務端發起請求,都需要帶着服務端最新簽發的Token;

(4)服務端收到請求,驗證請求裏面的Token,如果驗證成功返回請求的數據。流程圖如下:


Token身份驗證的優勢
(1)支持跨域訪問:Cookie是不允許垮域訪問的,這一點對Token機制是不存在的,前提是傳輸的用戶認證信息通過HTTP頭傳輸;
(2)更適用CDN:可以通過內容分發網絡請求你服務端的所有資料,而你的服務端只要提供API即可;
(3)去耦:不需要綁定到一個特定的身份驗證方案。Token可以在任何地方生成,只要在你的API被調用的時候,你可以進行Token生成調用即可;
(4)更適用於移動應用:如果客戶端是一個原生平臺(比如 iOS,Android,Windows 8 等),是不支持Cookie的,需要額外通過Cookie容器進行處理,這時採用Token驗證機制就會簡單得多。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章