REST API 通常使用 Authorization
中的 API token 进行访问。请求的 header 。如果用户有一个帐户,他们可以简单地获得一个与他们的帐户相关联的 token 。然后可以在此基础上应用速率限制。
但是,在某些情况下,没有帐户的用户可能需要访问 REST API。想象一下,例如,一个公共(public)新闻网站,其文章应该可供有帐户和没有帐户的用户阅读。在这种情况下,应该如何访问 REST API,并应用速率限制?
我的直接想法是匿名客户可以访问像 POST /api/register/anonymous
这样的资源。并被授予用于具有有限权限的匿名用户的 API token 。资源本身可以根据 IP 地址进行速率限制。然而,这无疑有其局限性,例如 IP 地址的不可靠性。
对此事的任何想法将不胜感激。
最佳答案
我很想被证明是错误的,但我看不出你如何有效地限制匿名访问。如果您提供匿名 token ,攻击者可以在旧 token 达到限制时请求新 token 。如果您通过 IP 地址进行限制,他们可以进行欺骗。如果您只是想阻止随机的互联网用户,一个或两个都可以。如果您担心专门的攻击者,那只是减速带。在请求匿名访问 token 时添加验证码也会减少攻击面。
关于rest - 匿名访问 REST API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43705198/