安全cookie登陸狀態設計方案

咱們知道web是基於HTTP協議傳輸的,明文傳輸是極其危險的,一個加密的傳輸過程應該包括兩部分,
一部分爲身份認證,用戶鑑別這個用戶的真僞;另一部分爲數據加密,用於數據的保密。 web


我大概是這樣作的:
(1)生成用戶驗證token
        用戶登陸後我會生成一個token,該token可能由以下信息組成:username+ip+expiration+salt【只是舉例】, 而後將組成信息用可逆加密函數加密獲得token,並將該 token保存到數據庫,寫入cookie;
(2)最後這樣去校驗信息,判斷用戶的登陸狀態

    1.將token解密,驗證用戶username,若是存在,繼續;
    2.而後驗證token是否和存入數據庫的token相同,若是相同繼續;
    3.驗證cookie的有效期expiration,若是有效繼續;
    4.驗證ip是否變化,若變化跳入登陸。。。。。。
    5.甚至還能夠驗證user agent. 數據庫

 (3)能夠作到單終端登陸,能夠將token放到數據庫,每次登陸操做必然會改變token的值,另一端的用戶就會token驗證失敗下線. 瀏覽器

最後說明: cookie

1.token每次登陸都會不同,這回致使以前的token【既cookie】失效

2.cookie的有效期最好不超過一週 網絡

一些站點會按照瀏覽器的UA信息或者是客戶端的IP地址來生成一個簽名串,
每次回去比對這個簽名串是否正確,
若是網絡環境發生了變化,即使是相同的cookie也會要求你從新登錄一下的 函數

有時咱們須要爲PC瀏覽器及移動瀏覽器生成不一樣的頁面,爲了提升性能,不能每次請求都去判斷User-Agent,一般用一個 Cookie 標記一下客戶端是不是移動客戶端,這樣只須要讀取這個 Cookie 的值就知道這個請求是不是移動端。
性能

相關文章
相關標籤/搜索