HTTP 無狀態與 Session 機制
HTTP 為無連線協定,伺服器需透過 Session 識別用戶:
- 首次請求 → 伺服器建立 Session (記憶體) → 產生唯一 SessionID。
- 伺服器以
Set-Cookie: ASP.NET_SessionId=xxx; path=/ 回應,瀏覽器儲存於 Cookie。
- 後續請求瀏覽器自動附上 Cookie,伺服器依 SessionID 取得用戶狀態。
模擬登入前置作業:抓包分析
- 清除 IE Cookie,啟動抓包工具 (如 HTTP Analyzer)。
- 瀏覽器登入目標網站 (例:
https://zh.sdo.com/...)。
- 輸入帳密送出,停止抓包,分析 Request/Response 內容。
盛大縱橫天下登入流程分析 (範例)
- 請求
https://cas.sdo.com/cas/login?service=... 取得 SessionID。
- 回應頁面內含 JavaScript 重導向,URL 參數
lt=sd-xxxx 為一次性 Ticket。
- 將
lt、帳號、密碼 POST 至 Login.PostTarget.aspx 完成驗證。
- 關鍵參數:
lt (Ticket)、username、password。
關鍵觀念
- 抓包工具專注 HTTP 協定較易分析 (避免雜訊)。
- 每個網站流程不同,需具體分析:表單欄位、隱藏值、重導向鏈、跨網域 Cookie。
- 模擬登入本質 = 以程式碼重現瀏覽器的 HTTP 行為序列。