溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中保持用戶登錄狀態(tài)

發(fā)布時間:2020-07-16 15:15:52 來源:億速云 閱讀:174 作者:Leah 欄目:編程語言

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

PHP保持用戶登錄狀態(tài)的方法

1、將用戶信息,比如一個['uid'=>123, 'username'=>'testuser']的數(shù)組,序列化后成為字符串,使用可逆加密算法加密該字符串,寫到一個Key為userinfo的COOKIE里。

2、由于可逆加密算法容易被解密,一旦加密的規(guī)則被別人猜測到以后,就可以輕易篡改這個COOKIE的內容,然后自行根據(jù)加密規(guī)則加密后偽造。

所以,我們另外加入一個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中保持用戶登錄狀態(tài)有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

php
AI