安全漏洞問題7:失效的身份認證和會話管理
安全漏洞問題7:失效的身份認證和會話管理
1.1. 漏洞描述
應用程式的功能一般包含許可權管理和會話管理,但是由於應用程式設計不當,讓攻擊者可以竊取到密碼、金鑰、session tokens等資訊,進而冒充合法使用者身份,獲取敏感資訊或者進行惡意操作。
1.2. 漏洞危害
利用不安全的許可權管理和會話管理設計,惡意使用者可能會竊取或操縱使用者會話和 cookie,進而模仿合法使用者,一般來說,可能造成以下危害:
竊取使用者憑證和會話資訊
惡意使用者冒充使用者身份檢視或者變更記錄,甚至執行事務
訪問未授權的頁面和資源
執行超越許可權操作
1.3. 解決方案
始終生成新的會話,供使用者成功認證時登入。
程式碼示例如下:
//Example 1:使用者登陸成功生成新ID
request.getSession().invalidate();//清空session
Cookie cookie = request.getCookies()[0];//獲取cookie
cookie.setMaxAge(0);//讓cookie過期
使用者再輸入資訊登入時,就會產生一個新的session了。
防止使用者操縱會話標識。
具體措施如下:
使用者密碼強度(普通-6位以上;重要-8位以上;極其重要:使用多種驗證方式)
不使用簡單或可預期的密碼恢復問題
登入頁面最好加密處理;登入出錯時不給太多的提示,使用統一的出錯提示;登入驗證成功後更換Session ID
第一次登入強制修改密碼;對多次登入失敗的帳號進行短時鎖定;設定會話閒置超時。
提供使用者登出退出功能,使用者關閉瀏覽器或者登出時,刪除使用者Session
使用128位以上具備隨機性的SessionID,不在URL中顯示Session ID
保護Cookie
在應用程式中為Cookie設定安全屬性:Secure flag和HttpOnly flag。
相關文章
- 初識ABP vNext(7):vue身份認證管理&租戶管理Vue
- 增強版實名認證介面-Java身份證實名認證介面程式碼-身份認證Java
- Kerberos身份認證方案ROS
- 網路身份認證——Kerberos配置及認證ROS
- node.js -- 身份認證Node.js
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- RHCE7認證學習筆記7——監視和管理程式筆記
- 如何解決兩因素和多因素身份驗證的大問題
- 華為雲 OneAccess 應用身份管理服務,認證授權雙保駕,身份管理的選擇關鍵
- WebApi的建立,部署,Oauth身份認證(一)WebAPIOAuth
- WebApi身份認證解決方案(1):Basic基礎認證WebAPI
- 點陣圖索引導致的會話阻塞問題(p7)索引會話
- session跟蹤失效的問題和原因Session
- 有關Laravel Passport認證的問題LaravelPassport
- 使用 JWT 認證使用者身份JWT
- [ Office 365 開發系列 ] 身份認證
- oracle 身份認證相關引數Oracle
- 7-3 查驗身份證
- 密碼安全和無密碼身份認證那些事兒密碼
- JAAS中的認證與授權問題
- oracle無法用oracle認證的問題Oracle
- 認證授權問題概覽
- 使用centos7的wall防火牆可能存在失效問題CentOS防火牆
- 去除windows身份認證帶來的安全隱患Windows
- go-kit微服務:JWT身份認證Go微服務JWT
- PHP 使用 jwt 使用者身份認證PHPJWT
- 會話管理會話
- css失效問題CSS
- 幾種常見的身份認證方案和介面測試中的應用
- ZooKeeper如何模擬會話失效(Session Expired)會話Session
- 開啟一個jsf會話失效JS會話
- java 實現從15位~18位的身份證號碼轉換,校驗中國大陸公民身份證、香港居民身份證、澳門身份證和臺灣身份證。Java
- RHCE7認證學習筆記6——管理檔案和目錄筆記
- 支招 | 如何解決身份驗證系統安全問題
- WebSocket的SSL認證失敗問題記錄Web
- 認證/授權與許可權的問題
- 18、關於oracle 認證的幾個問題Oracle
- 統一身份認證系統的簡單看法