上篇文章剛介紹了
cookie based session,那么,
如何保存cookie登錄的狀態(tài)安全性?
我們知道web是基于HTTP協(xié)議傳輸?shù)模魑膫鬏斒菢O其危險的,隨便哪個抓包工具分析下數(shù)據(jù)包,就over啦,一個加密的傳輸過程應該包括兩部分,一部分為身份認證,用戶鑒別這個用戶的真?zhèn)危涣硗庖徊糠譃閿?shù)據(jù)加密,用于數(shù)據(jù)的保密。
我大概是這樣做的:(1)生成用戶驗證token
用戶登錄后我會生成一個token,該token可能由如下信息組成:username+ip+expiration+salt【只是舉例】,然后將組成信息用可逆加密函數(shù)加密得到token,并將該token保存到數(shù)據(jù)庫,寫入cookie;
(2)最后這樣去校驗信息,判斷用戶的登錄狀態(tài)
將token解密,驗證用戶username,如果存在,繼續(xù);然后驗證token是否和存入數(shù)據(jù)庫的token相同,如果相同繼續(xù);驗證cookie的有效期expiration,如果有效繼續(xù);驗證ip是否變化,若變化跳入登錄。。。。。。甚至還可以驗證user agent.
(3)可以做到單終端登錄,可以將token放到數(shù)據(jù)庫,每次登錄操作必然會改變token的值,另外一端的用戶就會token驗證失敗下線
最后說明:1.上面保證了token每次登錄都會不一樣,這回導致之前的token【既cookie】失效
2.cookie的有效期最好不超過一周
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。