網站首頁 健康小知識 母嬰教育 起名 運動知識 職場理財 情感生活 綠色生活 遊戲數碼 美容 特色美食 愛好

利用cookie實現自動登錄

欄目: 互聯網 / 發佈於: / 人氣:1.83W

本文介紹了什麼叫自動登錄,如何利用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和用户名是否匹配,調用登錄的方法,實現自動登錄。