会话劫持的原理与防范
本文约需 10 分钟阅读
会话劫持是攻击者接管合法用户的 Web 会话以获取未授权访问的攻击手法。通过窃取或预测会话令牌(存储在 Cookie 中的会话 ID),攻击者无需知道密码即可冒充用户。据 OWASP 2024 年报告,会话管理缺陷位列 Web 应用漏洞前十,约 7% 的 Web 攻击利用了会话相关漏洞。截至 2025 年,以窃取 Cookie 为目的的信息窃取型恶意软件检测量同比增长 58%,会话劫持威胁持续扩大。由于攻击者夺取的是已登录状态,即使设置了两步验证也可能被绕过,这正是此类攻击的严重之处。本文将介绍会话劫持的技术原理以及用户可以实践的具体防御措施。
会话劫持的工作原理
通过 XSS 窃取会话令牌
跨站脚本(XSS)攻击通过向网页注入恶意 JavaScript 来实施。当用户访问被篡改的页面时,脚本会读取会话 Cookie 并发送到攻击者的服务器。如果 Cookie 未设置 HttpOnly 属性,JavaScript 可以通过 document.cookie 获取会话 ID,因此 XSS 是会话劫持最常见的手法之一。据 HackerOne 2024 年漏洞赏金报告,约 20% 的报告漏洞与 XSS 相关,其中 30% 直接导致会话令牌被窃取。
未加密通信的窃听
在未加密的 HTTP 连接中,会话令牌以明文传输。同一网络上的攻击者(如公共 Wi-Fi)可以使用数据包嗅探工具截获这些令牌。2010 年发布的 Firesheep 工具证明了在公共 Wi-Fi 上可以轻松截获他人的会话 Cookie,让世人认识到 HTTPS 的重要性。即使在今天,不使用 HTTPS 的网站仍然存在同样的风险。需要注意的是,即使使用了 HTTPS,如果 Cookie 未设置 Secure 属性,它也会附加到 HTTP 请求中,在存在混合内容时令牌可能以明文泄露。
要系统学习会话管理的攻击手法与防御,会话安全与 XSS 防御指南 (Amazon)是很好的参考资料。
会话固定攻击
在会话固定攻击中,攻击者预先为受害者设置一个已知的会话 ID。当受害者使用该会话 ID 登录后,攻击者就可以用同一个会话 ID 访问已认证的会话。正确实现的服务会在登录时重新生成会话 ID 来防止此攻击,但并非所有服务都做了正确的防护。常见误区是认为"登录页面使用 HTTPS 就安全了",但会话固定攻击与通信加密无关,仅靠 HTTPS 无法防御。
跨站请求伪造 (CSRF)
CSRF 攻击欺骗用户的浏览器向已认证的网站发送非预期的请求。虽然严格来说不属于会话劫持,但 CSRF 利用现有会话执行用户未授权的操作(如修改密码、转账等),直接威胁会话安全。SameSite Cookie 属性的引入降低了 CSRF 风险,但对于设置为 SameSite=None 的第三方 Cookie 仍需注意。
到底该怎么做
会话劫持看起来技术复杂,但实际的防御措施很简单。初学者请先启用浏览器的"仅 HTTPS 模式",使用共享电脑后务必注销。中级用户请在公共 Wi-Fi 上使用 VPN,用 Passtsuku.com 为每个服务设置唯一密码,并启用重要账户的登录通知。仅此就能大幅降低会话劫持的风险。
如何保护自己免受会话劫持
仅使用 HTTPS 网站
请务必确认登录的网站使用 HTTPS。检查浏览器地址栏是否显示锁图标。特别是在公共网络上,不要在 HTTP 网站输入认证信息。在浏览器设置中启用"仅 HTTPS 模式",访问 HTTP 网站时会显示警告。据 Google 透明度报告,Chrome 中超过 95% 的页面加载通过 HTTPS,但剩余 5% 的网站仍存在会话被截获的风险。
避免在公共 Wi-Fi 上进行敏感操作
公共 Wi-Fi 是会话劫持的理想狩猎场。在咖啡馆、机场、酒店等公共网络中,中间人攻击风险较高,请避免登录银行、邮箱、社交媒体等敏感账户。如果不得不使用,请通过可信的 VPN 加密流量 - 选择方法请参阅 VPN 基础知识与选择指南。VPN 账户的密码也请使用 Passtsuku.com 生成强密码。更详细的注意事项请参考公共 Wi-Fi 安全对策。
使用后务必注销
使用完 Web 应用后请务必注销,在共享电脑或公共终端上尤其重要。仅关闭浏览器标签页并不一定会结束会话。许多 Web 服务的会话有效期设置为 24 小时到 30 天,不注销的话会话会一直保持有效。请使用明确的注销功能使会话 Cookie 失效。设置浏览器"关闭时删除 Cookie"也是有效的对策。
保持密码强度和唯一性
仅靠强密码无法防止会话劫持,但对账户整体安全至关重要。使用 Passtsuku.com 为每个服务设置 16 个字符以上的唯一密码并定期更新,可以降低以密码泄露为起点的攻击风险。如果怀疑会话被劫持,请立即更改密码并使所有会话失效。
在保护会话的同时提升账户整体防御力,Web 认证与令牌安全实践书 (Amazon)是实用的参考资料。
怀疑会话被劫持时的应对
如果发现账户有异常活动 - 如自己未执行的操作、来自未知位置的登录通知、未修改过的设置变更 - 你的会话可能已被劫持。应对是与时间赛跑。如果在会话过期前攻击者更改了密码或恢复邮箱,账户恢复将极其困难。具体应对步骤请参考数据泄露应对指南。
- 立即使用 Passtsuku.com 生成新密码并更改
- 从账户安全设置中撤销所有活跃会话
- 启用(或重新设置)多因素认证
- 检查账户设置、恢复邮箱、电话号码是否有未授权的更改
- 检查已连接的第三方应用并撤销可疑访问
会话劫持防御检查清单
请使用以下检查清单确认您的会话安全状态:
- 确认所有登录网站都使用 HTTPS
- 启用浏览器的"仅 HTTPS 模式"
- 在公共 Wi-Fi 上不使用 VPN 不进行敏感操作
- 使用共享电脑或公共终端后明确注销
- 为重要账户启用登录通知
- 定期检查活跃会话并撤销不明会话
- 使用 Passtsuku.com 为每个服务设置唯一密码
- 设置浏览器在关闭时删除非重要网站的 Cookie
现在就能做的事
- 启用浏览器的"仅 HTTPS 模式"(Chrome:设置 → 隐私和安全 → 安全 → 始终使用安全连接)
- 使用 Passtsuku.com 为邮箱和银行账户生成 16 个字符以上的唯一密码
- 检查 Google、Apple、社交媒体账户的活跃会话,撤销不认识的会话
- 为重要账户启用登录通知,以便立即检测未授权访问
- 设置浏览器在关闭时删除非重要网站的 Cookie
常见问题
- 什么是会话劫持攻击?
- 攻击者窃取已登录的会话 ID,冒充合法用户访问服务的攻击。由于不需要知道密码就能接管账户,非常危险。
- 在公共 Wi-Fi 上有会话劫持的风险吗?
- 有。在未加密的公共 Wi-Fi 上,同一网络的攻击者可以拦截通信窃取会话 ID。请在公共 Wi-Fi 上使用 VPN,只访问 HTTPS 网站。
- 个人能做什么来防止会话劫持?
- 只使用 HTTPS 网站、在公共 Wi-Fi 上使用 VPN、使用完毕后务必登出、定期清除浏览器 Cookie、不安装可疑的浏览器扩展。
这篇文章对您有帮助吗?