黑馬程序員Java項目實戰(zhàn)《瑞吉外賣》,輕松掌握springboot + myb
2023-07-26 23:05 作者:風落windfall | 我要投稿

正在學習的小伙伴們看過來
這個項目有一個很嚴重的bug,就是前臺用戶(點餐頁面)登錄后,后臺用戶(管理頁面)可以繞過登錄直接訪問后臺頁面了,原因是LoginCheckFilter登錄過濾類只針對用戶登錄進行檢查(檢查session里面有沒有id),只要有用戶登錄成功那么session里面就會有用戶id,那么處于同一session的其他用戶便可以繞過登錄訪問另一方的頁面了,換句話說:如果在一個瀏覽器登錄了前臺或后臺,那么還想同時訪問后臺或前臺,必須更換瀏覽器,根本原因是同一個瀏覽器共享一個session
下面是解決方案:
1、更換不同瀏覽器訪問前/后臺頁面(無視bug)
2、增加前臺或后臺訪問的baseUrl前綴,如后臺的請求統一添加"/api",這樣可以在過濾器類里面通過request.getRequestURI/getContextPath/getServletPath等方式獲取請求路徑參數,通過檢查是否有“api”字符串判斷是前臺還是后臺用戶發(fā)的請求
3、使用無狀態(tài)token代替有狀態(tài)的session,不過鑒于此項目是單體項目,前后端不分離,使用token不是首選方案
綜上,如果回答有錯歡迎佬們指正
標簽: