今天就跟大家聊聊有關怎么在php中保持用戶登錄狀態,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

成都創新互聯公司10多年成都企業網站定制服務;為您提供網站建設,網站制作,網頁設計及高端網站定制服務,成都企業網站定制及推廣,對VR全景等多個行業擁有多年的網站維護經驗的網站建設公司。
PHP保持用戶登錄狀態的方法
1、將用戶信息,比如一個['uid'=>123, 'username'=>'testuser']的數組,序列化后成為字符串,使用可逆加密算法加密該字符串,寫到一個Key為userinfo的COOKIE里。
2、由于可逆加密算法容易被解密,一旦加密的規則被別人猜測到以后,就可以輕易篡改這個COOKIE的內容,然后自行根據加密規則加密后偽造。
所以,我們另外加入一個infodig的COOKIE,是將以上的userinfo的COOKIE內容,加入salt后使用不可逆加密算法生成散列,至于salt咱們可以自己定,總之要對外保密,不可逆算法例如md5,甚至多次加鹽多次md5。
3、以上兩個COOKIE,為增強安全性,防止用戶被XSS攻擊后拿到,可以設置http-only屬性。
服務端判斷存在以上兩個COOKIE后
1、驗證infodig與userinfo是否匹配(將userinfo的內容使用生成infodig的方法計算后,與COOKIE傳上來的infodig匹配是否一致)
2、infodig驗證通過后,使用解密算法解密userinfo串,得到用戶信息,如果用戶信息里的uid存在用戶表中,則寫SESSION,通過SESSION保持本次會話
總結:
使用COOKIE記錄用戶信息是可行的(當然不建議把用戶敏感的東西存在COOKIE,例如郵箱、手機、甚至密碼,只記錄對登錄有用的部分,例如uid、username等標識,以及nickname可能會在某些地方提升用戶體驗),可以確定的是,這個COOKIE對用戶可見,我們要做的就是兩點:
1、盡量讓用戶看不懂,而只有我們服務端自己認識(可逆加密算法)
2、即使用戶看懂了,他也不能夠輕易的偽造(不可逆的散列算法)
看完上述內容,你們對怎么在php中保持用戶登錄狀態有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創新互聯行業資訊頻道,感謝大家的支持。
網頁標題:怎么在php中保持用戶登錄狀態
本文路徑:http://www.yijiale78.com/article32/pcpgpc.html
成都網站建設公司_創新互聯,為您提供域名注冊、網站維護、企業網站制作、動態網站、關鍵詞優化、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯