首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

URL 攜帶 SessionID 的安全風險:Session Fixation 攻擊解析

     編輯:關於ASP.NET

前言

為相容禁用 Cookie 的瀏覽器,多種 Web 框架允許 URL 攜帶 SessionID (如 ;jsessionid=、?ASP.NET_SessionId=)。此機制易遭濫用發動 Session Fixation 攻擊。

攻擊流程

  1. 駭客登入系統,取得合法 SessionID (如 1234)。
  2. 駭客構造含 SessionID 的 URL:https://www.abc.com/login.jsp;jsessionid=1234。
  3. 誘騙受害者點擊連結並登入。
  4. 受害者登入成功,Session 綁定其身分,但 SessionID 仍為駭客原持有的 1234。
  5. 駭客重新整理頁面,即以受害者身分存取系統。

Session Fixation 攻擊流程圖

防禦措施

  • 登入後重新產生 SessionID:ASP.NET Session.Abandon() + Session.RegenerateId() (或棄用舊 Session 建立新)。
  • 拒絕 URL SessionID:<sessionState cookieless="UseCookies" /> 強制使用 Cookie。
  • 驗證 User-Agent / IP 綁定:偵測 Session 劫持異常。
  • HttpOnly / Secure Cookie 旗標:減輕 XSS 竊取風險。

ASP.NET 設定範例

<system.web>
  <sessionState cookieless="UseCookies" regenerateExpiredSessionId="true" />
</system.web>

總結

URL SessionID 雖便利卻隱藏重大風險。現代應用應強制 Cookie 模式,並在關鍵權限變更時重新產生 SessionID,徹底阻斷 Session Fixation。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved