rest - 匿名访问 REST API?

标签 rest authentication authorization api-design rate-limiting

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/

相关文章:

rest - 测试 Neo4j 托管扩展

rest - 具有服务器端身份验证和 Cognito 的无服务器框架

java - 从 GET 请求返回 pojo 时 Jersey Web 服务挂起

mysql - 安装 Jackhammer 时出现 Ruby on Rails 登录错误

java - 无法使用 Spring 引导 Rest 服务将 JSON 转换为 Java 对象

javascript - 如何在 Spring MVC 的客户端处理 JWT token ?

php - 裁剪后的哈希更难破解吗?

c# - 跳过基于另一个过滤器 asp .net 的过滤器执行

azure - 将 MVC 授权属性与使用 Azure Active Directory + OWIN 的角色结合使用

php - Laravel 授权策略 AccessDeniedHttpException 此操作未经授权