【问题标题】:Preventing session hijacking when using plain HTTP without encryption使用未加密的纯 HTTP 时防止会话劫持
【发布时间】:2020-07-15 10:35:03
【问题描述】:

据我了解,如果用户使用没有 TLS 加密层的纯 HTTP,那么任何“在线”监听的人都可以看到用户的会话 cookie 并窃取它。那么这是否意味着如果网站没有实现 HTTP over TLS,就不可能防范会话劫持?是不是意味着https之前的所有网站都无法防范会话劫持?

场景可能如下所示。

1.好人登录他们的帐户

GET / HTTP/1.1
Host: onlinecommunity.com
Cookie: PHPSESSID=f5avra_=AKMEHO_ga=GA1.2.93f54422f2ac010

2。一个“在线”监听的坏人会看到普通的 HTTP 请求

3.坏人发送相同的请求

GET / HTTP/1.1
Host: onlinecommunity.com
Cookie: PHPSESSID=f5avra_=AKMEHO_ga=GA1.2.93f54422f2ac010

4.现在坏人看到了好人的资料!

在 HTTPS 之前人们是如何防止 SESSION 劫持的?

【问题讨论】:

    标签: http security session cookies https


    【解决方案1】:

    我想我找到了(部分)我自己问题的答案,所以我会在这里分享给其他人。

    1. 如果网站不使用加密,那么您可以使用 VPN 对请求进行加密,这样会话 cookie 将被隐藏(加密)
    2. 您可以为每个请求重新创建会话 cookie。尽管从我读到的内容来看,这可能很难实现。
    3. 您可以检查其他标头字段并将它们与上一个请求进行比较。如果它们相差太大,您可以阻止访问。
    4. 您可以检查 IP 地址。但由于此人可能在移动网络上,因此 IP 可能会因正当理由而更改,因此您至少可以检查 IP 范围,以确保它来自与上次请求相同的国家/地区。

    我想一般来说,如果网站使用没有加密的纯文本 HTTP,你也可以通过在线监听来窃取他们的用户名和密码。因此,您至少应该使用 VPN(VPN 加密所有数据)。我猜 - 永远不要对任何敏感信息使用纯文本 HTTP 请求。

    欢迎补充或纠正我。

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2012-02-20
      • 2017-12-22
      • 2010-11-28
      • 1970-01-01
      相关资源
      最近更新 更多