并发登录安全

无限制的登录可能会掩盖严重的业务逻辑缺陷。

用户在笔记本电脑上登录。几秒钟后,同一个账号在不同的浏览器上登录。接着是移动设备。然后是一个 API 客户端。一切运行完美。

这看起来没问题,因为许多应用都支持多设备。但你必须问:是否每个应用都应该允许无限数量的会话?

在某些系统中,多会话是一项功能。而在其他系统中,它是攻击者用来隐藏踪迹的缺陷。这是一种业务逻辑漏洞。代码按照设计运行,但设计本身很脆弱。

区别在于: • 传统漏洞利用的是编码错误。 • 业务逻辑漏洞利用的是设计决策。

想想流媒体服务。如果一个订阅允许十个人同时观看,登录系统是正常的,但业务规则失效了。

这也适用于银行、管理面板和 SaaS 产品。

如何进行测试:

高安全性应用通常执行以下规则:

如果攻击者窃取了凭据,而你允许无限会话,他们就可以永远保持登录状态。他们和真实用户同时保持活跃,双方都不会察觉到入侵者。

上下文决定一切。 需要多会话的应用:

需要严格控制的应用:

如何修复:

不要只寻找像 SQL injection 这样的代码漏洞。要寻找应用行为与业务需求之间的差距。

今天就审查您的会话策略。您最大的风险可能不是代码损坏,而是逻辑缺陷。

Source: https://dev.to/arashad_dodhiya_0e4bdba5a/concurrent-login-security-how-to-check-whether-multiple-sessions-are-allowed-1839