淺談session及其安全

什麼是Session?

  • Session在網絡應用中被稱爲「會話控制」。
  • Session存儲在服務器端。
  • 用戶A訪問網站B,A登陸網站後,服務器會建立一個Session來保存用戶狀態和相關信息。每一個Session對應一個標識符SessionID來標識用戶身份。SessionID通常是由服務器以加密的方式寫到cookie中的,這樣用戶A登陸後,訪問網站B中不一樣的網頁時請求中會帶上SessionID來標識他的身份,以此實現一次登陸,訪問全網站。(如今大多數站點採用基於cookie的session管理方式:用戶登錄成功後,設置一個惟一的cookie標識本次會話,基於這個標識進行用戶受權。只要請求中帶有這個標識,都認爲是登陸態。)

Session劫持

只要請求中帶有這個標識,都認爲是登陸態

這就危險了,一旦你的標識被別人獲取,你的Session就被別人劫持了,他就能夠用你的身份隨心所欲。服務器

最基本的cookie竊取方式:xss漏洞

攻擊者最簡單獲取他人cookie信息的方法是XSS攻擊,想辦法注入js腳本到被攻擊者客戶端並執行,經過執行這個js腳本,攻擊者在被攻擊者登陸後得到了他的SessionID,經過在本身客戶端修改sessionId得到了被攻擊者的身份,後果不堪設想。。。cookie

防護方法 網絡

  • cookie設置爲HttpOnly,js腳本就沒法再獲取cookie,也就沒法獲得你的會話標識。
  • 防止xss注入:過濾用戶輸入
  • 每次請求作其餘驗證:cookie中取加密後的用戶id,session中取用戶id並加密,比較兩者,不一樣時攔截住。(我的理解)
相關文章
相關標籤/搜索