国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

java - 關于Spring MVC登錄系統的設計

瀏覽:96日期:2023-11-27 15:07:41

問題描述

我現在的想法是定義一個User對象,其中包括uid, username, password, isLogined等。然后設置一個攔截器,在用戶第一次請求(session開始)的時候,從數據庫中根據user.isLogined判斷用戶是否登錄,如果登錄了就在session級別上設置isLogined等于true,否則就重定向到登錄頁面。

但是這樣的話在用戶第一次請求的時候,我應該如何判斷用戶的身份?如果通過在cookie中設置uid的話,這個uid可以被其他人偽造,有潛在的安全風險。

請問對于這個問題,有什么好的解決方案?

補充

我主要的問題就是如何判斷用戶登錄身份的合法性,現在我的想法是將user id加密之后保存到cookie當中,這把密鑰只有我一個人知道,這樣別人即使知道user id也沒有辦法,請問這樣是否合理。

問題解答

回答1:

這個風險好大:uid修改為別人的,碰巧那人也登錄了,那么就以別人的身份登錄了

沿著你的方案走:1,cookie的uid設置為加密的,或者是無意義的隨機串2,用這個串和db里比對,或者和cache里的比對,同時校驗ip或者user agent加強安全性3,要考慮會話過期策略

回答2:

首先你的數據庫中需要先存儲用戶信息,設置isLogined 默認為FALSE,每次登陸成功后更新為TRUE,退出后更新為FALSE;判斷登陸成功的標志用userName userPass 匹配,還有isLogined 判斷;最后設置判斷級別,先isLogined 后 用戶密碼;

回答3:

建議登錄狀態不要存儲在數據庫中,至少也別存在關系型數據庫中;可以在用戶登錄校驗完成后,返回token,之后用戶的所有請求在headers的authorization字段都帶上這個token;可以去了解一下jwt及相關實現

回答4:

就按你現在的方式,如果我一個匿名用戶,沒登錄,去請求你的某個接口,然后被攔截從數據庫中根據user.isLogined判斷用戶是否登錄,那么問題來了。你user.isLogined中的這個user是誰呢?

建議直接登錄后把用戶登錄成功信息放session里,請求的時候攔截器去驗證session就好了,不要去訪問數據庫,每次請求都有這一個訪問數據庫操作很有消耗的。

標簽: java
相關文章:
主站蜘蛛池模板: 久久精品国产99久久久 | 男女视频免费网站 | 一区二区三区免费观看 | 中文国产成人精品久久一区 | 美女黄页黄频 | 一级一毛片a级毛片欧美 | 久久一级黄色片 | 日韩美女爱爱 | 精品国产免费第一区二区三区日韩 | 国产片网站 | 9l国产精品久久久久麻豆 | 色综久久 | 草草影院ccyycom浮力影院 | 国产三级国产精品国产国在线观看 | 一级做a爰片久久毛片鸭王 一级做a爰全过程免费视频毛片 | 久久怡红院亚欧成人影院 | 欧美亚洲日本韩国一级毛片 | 欧美成人免费tv在线播放 | 欧美三级一区二区三区 | 国产丝袜美腿高跟白浆 | 亚洲国产日韩欧美在线 | 日韩国产免费 | 国产成人刺激视频在线观看 | a一级毛片免费高清在线 | 久久不射网 | 欧美6699在线视频免费 | 国产一区在线播放 | 真人毛片视频 | 亚洲综合91社区精品福利 | 丝袜足液精子免费视频 | 日韩不卡在线观看 | 日本久久伊人 | 国产欧美一区二区三区视频在线观看 | 国产亚洲精品久久久久久午夜 | 国产中文字幕在线观看 | 亚洲国产成人精品激情 | 精品亚洲成a人在线播放 | 国产二区三区毛片 | 成人a视频在线观看 | 久草免费在线视频 | 免费观看一级特黄欧美大片 |