会话劫持
会话劫持是指攻击者在两台计算机之间的有效会话被劫持。攻击者窃取一个有效的会话 ID,以便闯入系统并窃取数据。
大多数身份验证仅发生在 TCP 会话的开始。在 TCP 会话劫持中,攻击者通过在会话中间接管两台计算机之间的 TCP 会话来获得访问权限。

会话劫持发生的原因是
- 无效会话 ID 没有账户锁定机制
- 会话 ID 生成算法薄弱
- 处理不安全
- 会话过期时间无限
- 会话 ID 短
- 明文传输
会话劫持过程
- 嗅探,即执行中间人 (MITM) 攻击,将自己置于受害者和服务器之间。
- 监视服务器和用户之间传输的数据包。
- 中断受害者计算机的连接。
- 接管会话。
- 使用受害者的会话 ID 向服务器注入新数据包。
防止会话劫持
- 使用 SSH (Secure Shell) 创建安全通信通道
- 通过 HTTPS 连接传递身份验证 cookie
- 实现注销功能,以便用户可以结束会话
- 在成功登录后生成会话 ID
- 在用户和 Web 服务器之间传递加密数据
- 使用字符串或长随机数作为会话密钥
另见
- Session hijacking on Wikipedia