【问题标题】:Session-based authentication security基于会话的身份验证安全
【发布时间】:2015-11-24 11:42:17
【问题描述】:

据我所知,在 authentication 阶段之后,当用户将他的用户名和密码发送到服务器时,无论是否使用 https,服务器都会向客户端发送 sessionId ,然后该客户端对每个后续请求使用此 sessionId

  • 我的问题是,如何保护每个请求的 sessionId 使其不被黑客劫持?因为 sessionId 是作为 cookie 发送的(在提交用户名和密码后形成服务器)并且可以很容易地被窃听(据我所知)。
  • 我的第二个问题是关于掌握基于令牌的身份验证和基于 sessionId 的身份验证之间的区别。我阅读了很多关于它们之间区别的解释,但我很难理解。

最好的祝福。

【问题讨论】:

    标签: security https


    【解决方案1】:

    您可以设置 httpOnly 标志以确保无法从 javascript 读取 cookie。

    安全标志可以确保 cookie 只能通过基于 SSL/TLS 的连接传输。

    【讨论】:

      【解决方案2】:

      作为 cookie 发送,很容易被窃听。

      如果它是通过 HTTPS 发送的,则不会(您已将其添加为标签)。这才是 HTTPS 的重点。

      还有其他可能破坏网络会话的攻击,但这是一个不同且更长的讨论。

      我的第二个问题

      应该作为单独的问题发布。

      会话 ID 专门绑定到会话,因此可以引用身份验证所需之外的状态信息(例如您的购物篮),而令牌身份验证专门处理身份验证。

      【讨论】:

      • 很好的解释,但是如果我们正常使用HTTP协议会有安全威胁并且sessionId可以被劫持不是吗?至于基于令牌的身份验证和基于会话的身份验证之间的区别,现在非常清楚,这似乎正是我需要知道的,因为这是它们之间的主要区别,所以谢谢你。你能回答我的第一个问题吗?
      • 1) 你用 HTTPS 而不是 HTTP 标记了你的问题,是的,通过 HTTP 在没有其他安全措施的情况下通过窃听来控制会话非常简单 2) 会话可以通过 SSL 劫持但不是通过单独窃听
      • 在禁用 cookie 的 https 情况下,将使用 URL 重写时传递 sessionId,在这种情况下,即使使用 https,sessionId 也是可见的。你怎么看?
      • 您正在扩展此问题的范围。如果您使用的 HTTP 会话管理系统可以选择使用 cookie 以外的东西而不是用于传递会话 ID,那么可能会暴露其他攻击面。但是,在您描述的情况下,会话 ID 不会暴露给第三方。
      • 我想知道如何保护 sessionId,即使我们使用 https 以防 cookie 被禁用,这不在此问题的范围内。先生。
      猜你喜欢
      • 2016-12-18
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 2019-05-17
      • 2017-04-13
      • 2015-12-24
      • 2011-06-08
      相关资源
      最近更新 更多