酷知百科網

位置:首頁 > 遊戲數碼 > 互聯網

利用cookie實現自動登入

互聯網1.9W

本文介紹了什麼叫自動登入,如何利用cookie實現自動登入,以及可能存在的安全問題及相應的解決方案

操作方法

(01)什麼是自動登入?所謂自動登入就是當用戶在訪問某一站點的時候不用再輸入用戶名和密碼,直接登入。例子有很多:比如163郵箱的登陸頁,如果用戶登入的時候勾選了“十天內免登入”,則未來十天內用戶訪問163郵箱的時候就不用再輸入用戶名和密碼了,只要在瀏覽器裏面輸入,則自動跳轉到郵箱首頁。

利用cookie實現自動登入

(02)如何實現自動登入?由於HTTP請求時無狀態的,客戶端必須攜帶一些標識自己身份的資訊纔有可能完成自動登入。只有cookie能完成這個任務。大致思路就是:1、用戶首次登入的時候,選擇“N天內免登入”;2、系統登入請求返回的時候,往客戶端寫cookie,cookie中包含用戶的登入名,有效期爲N天。3、用戶下次再訪問該網站的時候,攜帶cookie;4、系統根據cookie中的用戶名,調用登入的方法,實現自動登入。

(03)安全性的考慮。由於cookie是可以被僞造的,所以上述的方案有以下安全隱患:1、修改用戶名,這樣就可以隨便用其他人的賬號登入了;2、修改cookie的有效期,這樣當別人拿到你的電腦的時候,即使已經過了cookie的有效期,仍然可以登陸。對應的解決思路爲:1、在cookie中增加難以僞造的資訊,並且和用戶名一一對應。其實密碼具備這兩個特點,但是密碼未經加密就放置在cookie中,不安全。可以選擇使用用戶的sessionId來做,同時將sessionId加密。這時就需要在服務器端建表記錄這種對應關係,假設該表爲表A。2、在服務器端記錄用戶cookie的失效時間。同樣在表A中記錄。修改之後的思路就變成了:1、用戶首次登入的時候,選擇“N天內免登入”;2、系統登入請求返回的時候,往客戶端寫cookie,cookie中包含用戶的登入名,加密後的sessionId,有效期爲N天。3、用戶下次再訪問該網站的時候,攜帶cookie;4、系統根據cookie中的用戶名,加密後的sessionId,判斷cookie是否過期,校驗sessionId和用戶名是否匹配,調用登入的方法,實現自動登入。

標籤:Cookie 登入 自動