如何防止使用被盗令牌进行Rest Web服务认证

问题描述 投票:0回答:1

我们知道Rest服务是无状态的,进行身份验证的通用策略是使用基于令牌的身份验证。

在登录服务中,它需要返回令牌的凭据。

此令牌可能在客户端cookie中设置,并且所有后续请求都使用此令牌进行验证,如果令牌有效,则处理新请求。

现在我的问题是如何验证令牌?如果有人窃取了令牌并试图通过仅编辑cookie来尝试使用窃取的令牌来访问其他服务,那么如何识别和限制令牌呢?

我们永远不会知道有效用户是否提取了令牌,并且同一用户正尝试访问后续请求。但是有什么可能的方法使其变得更困难,例如验证请求是否来自同一来源?

一个普遍的建议是设置令牌/ cookie的期限,但是直到该令牌/ cookie的期限仍然没有帮助。

java security spring-security spring-rest stateless
1个回答
0
投票

我不认为有100%的防呆方法可以防止用户令牌被盗。您甚至怎么知道令牌最初是被盗的?但是从我的头顶上,您可能需要考虑以下事项:

  1. 具有相同令牌但使用不同用户代理的REST服务可疑。可以使用User-Agent标头的值来识别。您可能要考虑删除此类请求。
  2. 如果IP地址更改但令牌仍然相同怎么办?好吧,也许有人正在使用负载平衡器并通过不同的IP地址访问网络?还是他使用与以前相同的令牌/ cookie访问了VPN?如果您不希望删除此类请求,则也可以通过检查源IP地址来提高安全性。
  3. [例如,如果是JWT令牌,您将需要一些基础结构来处理黑名单。跟随this
© www.soinside.com 2019 - 2024. All rights reserved.