使用浏览器cookie的应用程序身份验证安全性



我正在使用nodejs作为后端构建一个社交媒体应用程序,并考虑以不同的方式建立一个" Keep me logged in ";功能。

我已经了解到在cookie中存储用户身份验证数据的危险,所以我正在寻找确保用户安全的技巧。

我正在考虑使用jsonwebtoken生成一个随机令牌,它编码用户id和用户IP地址。当用户登录应用程序时,浏览器中存储的cookie被解码,如果cookie中存储的IP地址与设备当前的IP地址匹配,则用户自动登录。

这足够安全吗?如果不是,有什么更安全的方法来实现"保持我登录"?功能吗?

这不够安全。

如果攻击者获得了用户id和他的IP地址,就可能发生会话劫持。然后,他可以继续通过编码受害者的userID和相关IP地址来创建一个欺骗cookie,从而劫持受害者的会话。

对于你问题的第二部分,一种更安全的方式来实现"Keep me logged in";功能是实现具有访问控制和身份验证的会话管理。授权机制。

我还建议阅读会话管理备忘单OWASP。

根据您的安全需求,http cookie可能不是存储客户端会话/令牌信息的最佳选择,因为它是服务器可读的,可过期的,容易意外清理等。考虑使用浏览器的localStorage。

如果你需要更多的保护来"Keep me logged in";功能,针对其他特定漏洞,例如从其他设备欺骗物联网应用程序,您可能会寻找浏览器指纹。

相关内容

最新更新