我将JWT身份验证与ASP.NET Core Web API一起使用。我遵循的过程。
我将令牌存储在客户端的本地存储中。我的问题是,
即使请求来自不同的用户,服务器仍然会验证令牌是否有效。
简单来说,任何人都可以通过使用有效令牌修改本地存储来入侵系统。
如何解决此安全漏洞?
答案 0 :(得分:2)
常见的预防方法之一是将IP(作为登录源)作为签名JWT的一部分。由于这种安全问题,通常还使用安全机制来存储JWT。您可以根据客户和所使用的框架,研究存储JWT的最佳方法。
答案 1 :(得分:2)
您是对的,但这就是JWT的工作方式。
可能的解决方案: 使用Http安全cookie并从cookie中读取JWT,而不是使用和存储来自localsotage的令牌
如果有任何疑问,请给我
答案 2 :(得分:0)
JWT只是安全系统的一层。它们的存在是为了安全地标识经过身份验证的用户,并可能以可能可能但也可以很容易检测到的方式包括有关该用户的其他授权数据(角色,声明等)。
所以,对的,构建安全系统需要采取其他措施,例如:
答案 3 :(得分:-1)
您是对的。如果有人拥有令牌,则他们可以毫无问题地请求后端。这意味着他们可以用被盗的令牌做太多事情。这就是令牌通常具有到期和刷新令牌的原因。
我认为您应该为令牌设置较短的到期时间,并使用刷新令牌的机制