日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web应用安全————多点登录互斥

發(fā)布時間:2025/3/12 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web应用安全————多点登录互斥 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

在實際生活中,很多網(wǎng)站都做了多點登錄互斥的操作,簡單來說就是同一個賬號,只能在一臺電腦上登錄,如果有人在其他地方登錄,那么原來登錄的地方就會自動下線,再進(jìn)行操作就會彈出登錄界面。

實現(xiàn)思路

在《Web應(yīng)用安全————賬號凍結(jié)與 Session 實時失效》中,我們通過map 來維護(hù)一個全局的“用戶名 - Session Id” 關(guān)系,這樣,就可以方便的根據(jù)用戶名來找到此用戶的Session id。

根據(jù)Map 的特性,在調(diào)用 put 方法的時候,會覆蓋相同 key 下的 value 值,因此,我們在存儲 session id 前,先取出對應(yīng) 用戶名的 session id ,將其注銷(調(diào)用stop()方法)就可以完成這一操作。

其實功能實現(xiàn)的整體思路和 凍結(jié)賬號使 session 失效的思路基本相同,只不過凍結(jié)賬號是管理員手動操作,而多點登錄是通過登錄操作自動觸發(fā),使原來的 session 失效。

關(guān)鍵代碼

紅框內(nèi)的語句就是處理多點登錄互斥的關(guān)鍵代碼,其實就是在用戶登錄時去map 中查找該用戶上一次使用的 session id ,再通過 Shiro 的SessionManager 的 getSession(sessionId) 查找 對應(yīng)的 session 對象,判空后執(zhí)行 注銷操作 stop() 。

如果不清楚 CcShiroSessionIdPoolVo 的結(jié)構(gòu),可以參考《Web應(yīng)用安全————賬號凍結(jié)與 Session 實時失效》?,這里就不重復(fù)解釋了。

總結(jié)

其實不論賬號凍結(jié)還是多點登錄的互斥,都是對 用戶賬號的一種保護(hù)機(jī)制,避免用戶的賬號被不法利用。

兩者實現(xiàn)的思路本質(zhì)上是基本相同的,都是在 登錄的 處理中,加入對 session 的操作,主要就是能夠拿到指定用戶的 session id ,然后就是找到 session ,并注銷。

我個人認(rèn)為難點就是如何通過指定用戶找到對應(yīng)的 session id,網(wǎng)上好像也沒有類似的教程和案例,于是只能自己手動封裝一個 map 來維護(hù)用戶名和 session id 的關(guān)系,如果有朋友知道使用框架 api 獲取指定用戶 session id 的方法,歡迎文末留言探討交流,非常感謝!

?

總結(jié)

以上是生活随笔為你收集整理的Web应用安全————多点登录互斥的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。