項目背景:
SpringMVC + Mybatis + MySql數據庫(javaWeb項目開發)
相關模塊:登錄,個人詳細信息修改,訂單詳情查詢
相關漏洞介紹:
1.登錄的驗證碼:登錄的驗證碼一定要在後台做驗證,如果只是前台驗證驗證碼後,後台未驗證,可能會發生第一次驗證驗證碼後,通過工具繞過驗證碼進行暴力破解;
2.攔截器:要對登錄後的如個人信息操作的接口名稱要使用/user或者/admin進行攔截,如用戶未登錄,將自動跳轉至登錄頁面;
3.個人詳細信息修改:用戶的信息要存放在session裡面,如用戶的id,這樣進行個人信息修改的時候,如果是免密接口(即修改信息不需要密碼),修改賬號信息的時候,一定不要直接傳用戶的id來做唯一的標識,使用用戶的關鍵性信息的時候,可以從session獲取當前登錄用戶的信息,防止如賬戶為3000001的用戶登錄後修改賬戶3000002的用戶的個人信息;
4.訂單詳情接口:如果是查詢用戶的訂單詳情,只通過訂單id進行查詢的話,即使接口名加了/user,攔截了未登錄的用戶,也有可能發生其他用戶登錄後可以查詢到非本人訂單的詳情信息。對於此種情況,一定要在查詢訂單詳情前,驗證此訂單是當前登錄用戶的個人訂單,即驗證session中的id與此訂單的創建人的id一致;防止信息的洩露;
(備注:以上漏洞真實發生過,發出來希望其他新人引以為戒,也希望能和更多的人一起交流開發中遇到的問題)