黑客是不是有可能通过窃取会话令牌然后伪造用户代理、IP 和其他详细信息来冒充用户?

Posted

技术标签:

【中文标题】黑客是不是有可能通过窃取会话令牌然后伪造用户代理、IP 和其他详细信息来冒充用户?【英文标题】:Is it possible for a hacker to impersonate a user by stealing session token and then faking the user-agent, IP and other details?黑客是否有可能通过窃取会话令牌然后伪造用户代理、IP 和其他详细信息来冒充用户? 【发布时间】:2020-05-04 19:32:49 【问题描述】:

验证和会话跟踪的常见做法包括使用从客户端检索到的会话 ID,然后比较存储在数据库中的用户详细信息以匹配会话 ID、用户代理详细信息、IP 等。 现在,如果黑客可以访问会话令牌并猜测或提取其他详细信息,他可以冒充用户吗? 我们可以采取哪些措施来防止此类攻击?

【问题讨论】:

【参考方案1】:

对于大多数应用程序来说,获取会话令牌就足够了,通常不会进行进一步的检查。唯一会产生非常显着差异的是使用会话令牌检查请求源 IP,这实际上会提高安全性,但从可用性的角度来看,这是一场灾难——典型用户的 IP 地址有时会发生变化,很多用户也可能具有相同的外部 IP(例如在某些 ISP 或公司网络中)。

所以是的,获取会话令牌允许攻击者冒充用户。

为防止此类攻击,会话 ID 需要使用安全的随机生成器(或者更好的是,从真实随机源生成,但这会在规模上产生问题),并且需要在传输过程中受到保护 (https) 以及存储时(httpOnly cookie)。当然,有时其他方面也同样重要,因此可以做出不同的妥协(比如将令牌存储在 localStorage 中,但只是一个短暂的,并将刷新令牌存储在身份提供者的 httpOnly cookie 中)。

最重要的是,您几乎不应该自己实现它,除非您有真正的特殊要求(以前可能几乎没人想要的东西)。在所有其他情况下,您会发现它已经在您的技术堆栈中实现在许多人测试的知名库或框架中 - 您应该使用这些。

【讨论】:

以上是关于黑客是不是有可能通过窃取会话令牌然后伪造用户代理、IP 和其他详细信息来冒充用户?的主要内容,如果未能解决你的问题,请参考以下文章

跨站点请求伪造

如果黑客设法获取我的会话令牌。那么这是否意味着我的帐户可能会遭到入侵?

使用会话令牌或随机数进行跨站点请求伪造保护 (CSRF)?

Token窃取与利用

通过XSS窃取localStorage中的JWT

窃取 CSRF 令牌