跳到页面内容
跳到互动练习
互动课堂 / 会话凭据追踪台DAILY / SECURITY TERMS

077 / Web 与应用 / Session Hijacking

密码还在你手里,会话怎么被拿走了?

会话劫持 · Session Hijacking

用户刚完成 MFA,应用随后用会话 Cookie 识别请求。若那份仍有效的凭据被复制,攻击者可能无需再次输入密码。分别处理泄露入口与旧凭据何时失效。

开始探索 ↓8–12 分钟
动手实验 · 场景判断 · 实用检查

用户在桌前使用电脑,蒙面角色拿走带饼干图案的发光凭据,另一处画面显示他打开用户页面。饼干是会话 Cookie 的隐喻;画面没有表明改密码或关浏览器就能撤销被盗副本。

会话劫持 · 本课场景

Session Hijacking 概念寓意:窃取或预测会话标识后冒充已登录用户。

用户在桌前使用电脑,蒙面角色拿走带饼干图案的发光凭据,另一处画面显示他打开用户页面。饼干是会话 Cookie 的隐喻;画面没有表明改密码或关浏览器就能撤销被盗副本。

按 Esc 或点击画面外侧关闭。打开原图 ↗

本课任务 / 会话劫持

区分阻止凭据被偷、限制有效时长和主动撤销,验证每种控制真正改变了什么。

  • 比较脚本读取、HTTP 传输与终端失陷
  • 追踪登录、复制、重放与凭据轮换
  • 区分清除本地 Cookie 和服务端失效

会话为什么能代表登录状态?

认证后,应用将会话标识关联到用户和服务端状态。请求携带仍有效的标识时,应用可以延续登录;窃取或预测标识的人可能借用这种关联冒充用户。[1]

MFA 为什么可能没有再次出现?

本页普通资源接受有效会话,不要求每次重新认证。MFA 保护最初的身份核验,不能自动消除随后凭据被复制的风险;敏感动作应另行决定是否要求重新认证。[3]

预防泄露和缩短寿命一样吗?

不同。Cookie 属性和传输保护减少某些泄露路径,过期限制可用时间,服务端撤销使已泄露凭据失效。任何一项都不能替代其他所有控制。[2][1]

亲手探索 / 不同条件,不同结果

让同一份被复制的凭据经历不同结局。

先完成模拟登录,再尝试复制和重放;比较轮换、仅清 Cookie、服务端撤销与推进时间。三种 Cookie 配置对应不同窃取路径;10 分钟绝对寿命仅为演示参数,不是通用建议。

会话生命周期实验台

登录验过身份,之后是谁在拿凭据通行?

每次操作接着上一步发生。观察本人浏览器、对方副本和服务端记录如何分开变化;版本号只是标签,没有真实 Cookie、登录或网络请求。

假设对方已越过浏览器的脚本 API 限制拿到凭据;Cookie 属性不能修复已失陷的终端。

修改上面任一设置会重新开始本轮会话,清空旧结论。所有配置均显式设置 SameSite=Strict;它不能让已泄露的持有者凭据失效。

② 建立会话,再尝试使用副本
本人浏览器
没有凭据
本地持有不等于服务端仍接受
对方保存的副本
没有凭据
不会随本人清 Cookie 自动消失
服务端记录
尚未登录
距本次登录 0 / 10 分钟(模拟)
③ 改变生命周期,然后再次重放

撤销假设经过可信管理或恢复入口。10 分钟是任意教学刻度,真实时限应按风险确定;轮换版本不延长这次登录的绝对寿命。

尚未运行。先完成 MFA 登录,再复制和重放教学凭据。

先登录、复制、重放,再只清除浏览器 Cookie 后重放。重新登录后,试轮换、再次复制、服务端撤销与到期。最后切到脚本读取,比较 HttpOnly 的作用与边界。

随手查 / 把理解带回实际工作

理解机制之后,检查这些细节。

实验是简化模型。真实环境需要明确业务规则、验证失败路径,并持续维护配置与证据。

01 / 实用细节

会话标识需要不可预测且由服务端认可

使用成熟框架和密码学安全随机数生成会话标识,不在其中暴露个人资料。服务端应拒绝任意外来标识;登录和权限提升时更新标识,以降低会话固定风险。[1]

02 / 实用细节

Secure、HttpOnly 与 SameSite 各有职责

Secure 限制 Cookie 经安全传输发送,HttpOnly 阻止页面 JavaScript 直接读取,SameSite 限制特定跨站发送场景。这些属性不会让已经复制的 bearer 凭据自动失效。[2][1]

03 / 实用细节

HttpOnly 不能修复整个终端或 XSS

页面脚本不能直接读 HttpOnly Cookie,但浏览器仍可能给脚本发起的请求附带它。终端失陷也不受这项属性完整保护;仍需治理 XSS、终端风险与敏感操作的重新认证。[2][3]

04 / 实用细节

轮换要包含旧标识的失效

只给浏览器一个新值,不等于旧值已经不能使用。本练习轮换时立即使旧版本失效且不延长绝对寿命;真实系统还要定义并测试并发请求、短暂交接窗口和权限变更处理。[1]

05 / 实用细节

闲置超时与绝对寿命分别限制

闲置超时按最近活动计算,攻击者持续活动可能让它不触发;绝对寿命限制整个会话的最长时间。两者应由服务端执行并按业务风险设定,本实验只模拟绝对寿命。[1]

06 / 实用细节

退出和改密后的效果需要核实

本地删除 Cookie 只移除了这台浏览器的副本,不能证明服务端已撤销被盗副本。退出、恢复或改密时应明确终止哪些会话,核对服务端效果,不能默认一次改密必然让所有设备退出。[1][3]

从模拟,到验证

找一个获准的环境,实际检查一次。

勾选用于本页自查,不会自动标记整课已学会。练习与清单刷新后重置。

本页已检查 0 / 5 项

实际检查清单
30 秒场景小测

密码已更改但旧会话仍有效,该做什么?

能解释原因,再标记学会。

小测结果同步错题本;“已学会”沿用原有本地学习记录。

资料与依据

  1. OWASP · Session Management ↗

    会话劫持、标识生成、轮换、超时及服务端失效

  2. MDN · Set-Cookie ↗

    Secure、HttpOnly、SameSite 与 Cookie 属性的实际边界

  3. OWASP · Authentication ↗

    已认证页面的传输保护、会话窃取与风险后重新认证

本页场景、人物与数据均为教学示例。互动选择不会上传;收藏、已学会与错题沿用当前浏览器本地存储。来源正文核对日期:2026-10-08。