首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >限制REST访问仅限于已注册站点

限制REST访问仅限于已注册站点
EN

Stack Overflow用户
提问于 2022-03-03 16:43:06
回答 1查看 544关注 0票数 1

我有一个古老的问题,也许在这里被问了很多次,但我们仍然在2022年,也许有更好的方法来解决这个问题。

我有一个API,它被注册在这个API中的一些网站(客户端)使用,这些客户端使用这个API来为私有和公共用户显示服务列表,而不需要任何身份验证。

当客户端在API中注册时,会给出一个个人访问令牌,在使用API限制滥用该API之前,为每个请求发送该令牌。

公共端访问令牌的问题是,任何人都可以拦截它,并在网站之外使用它以满足用户的愿望,这将造成很大的成本。即使我把代币的寿命缩短到10分钟,我仍然有滥用它的风险。

除了对每个请求的客户端进行身份验证外,还有什么方法可以更好地保护这个API,以便在几秒钟内获得新令牌的生命周期?

为了更好地说明上面的问题,这就是用例:

  1. 恶意用户连接到第一个注册站点,因为站点将服务列表给公共用户,恶意用户拦截API头中的令牌。
  2. 恶意用户来到他未注册的站点并使用令牌。

所有这些步骤都可以由恶意用户自动执行。

编辑:我不能改变客户端的实现或要求他做任何改变,我寻找一些东西来减少滥用不是100 %,而是使滥用有点复杂,比如使用原始域名,CORS,.

EN

回答 1

Stack Overflow用户

发布于 2022-03-04 08:41:49

今天使用的绝大多数访问令牌都是无记名令牌。这意味着,如果令牌有效,资源服务器将接受该令牌,而不关心是谁发送了该令牌。您是对的,这意味着恶意用户可以窃取您的令牌并使用它调用您的API。攻击者有更多的方法来窃取访问令牌,而不仅仅是MITM攻击(正如问题中所指出的,使用TLS可以大大减轻攻击)。如果将令牌提供给Javascript应用程序或浏览器中的人攻击,则可以进行XSS攻击,在这些攻击中,令牌被浏览器中运行的恶意代码窃取。

这些攻击通常是通过使用短命访问令牌(甚至不到10分钟)和设置速率限制来缓解的。这通常足以防止滥用。您始终可以添加额外的保护层,例如,如果调用方的IP更改,则丢弃令牌等。

如果您需要更强的保护,那么您可以查看发送方受限的访问令牌。这些都是令牌,只能由合法客户端使用。发送这样的令牌需要客户提供更多的占有证明。然后与令牌本身一起验证这一点。

实现受发送方约束的令牌有不同的可能性,例如证书绑定令牌DPoP

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71340705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档