session,cookie,token的一點理解

cookie的出現是爲了解決http協議的無狀態問題,cookie是存儲在瀏覽器中的。用戶登錄後,將登錄信息寫入cookie,瀏覽器每次訪問攜帶,來證明登錄的合法性。
cookie要攜帶登錄用戶的信息,這樣造成了不安全性,session就是爲了解決這個問題。session將用戶信息存儲在服務器,將生成的唯一id存入cookie,也就是sessionId。這樣cookie每次只攜帶sessionId就可以了,提高了安全性,而且降低了攜帶大量參數造成的網絡開銷。session存儲在服務端,負面影響就是佔用了服務器內存,對服務器造成壓力。現在常用的手段是將session放入redis集羣中。
session跨域問題?
此問題常存在於單點登錄中,A系統生成的cookie,瀏覽器在訪問B系統的時候不會攜帶。單點登錄的時候,需要專門的登錄服務器,訪問任何系統,都有重定向到該登錄服務器,登錄服務器可以將A系統的cookie,寫入到訪問B域名。這樣在訪問B系統的時候,就會攜帶cookie。
cookie劫持問題?
雖然用到session,cookie中只需要一個sessionId字符串,但是如果有人非法獲取了這個字符串,仍然可以僞裝成合法用戶。這個時候可以用到token,token是服務器將一些私人信息通過加密算法生成的加密字符串,token也存儲在cookie中,瀏覽器訪問系統需要攜帶token,服務器收到後再進行解密,查看信息是否合法。

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