我想通过一个简单的服务推出我自己的 REST API。我想要三个基本计划,它们在可用请求/秒方面有所不同。
有没有一种简单的方法可以防止按键切换?假设有人购买了“企业”api key 并将其发送给其他人?现在,其他人无需实际付费即可访问“企业”级功能。
当然,我会实现某种速率限制,但这不是重点。我只是想让 API 可供实际购买 API key 的人使用。
提前致谢!
最佳答案
仅使用 API key 无法做到这一点。您可以尝试做一些事情,例如只接受来自某些 IP 地址的某些 API key ,但这会带来很多问题。可靠地做到这一点的唯一方法是强制您的客户端进行身份验证。
您可以使用用户名/密码来执行此操作,他们需要将这些内容发送给您进行验证,您可以检查该用户名是否有权访问计划/服务。您还可以使用相互验证的 SSL 来实现此目的,其中您向客户端颁发自签名客户端身份证书,他们在连接到您的服务时使用这些证书进行身份验证,然后您可以进行查找以查看该客户端是否有权访问计划/服务。请注意,无论哪种情况,您都需要实现 SSL,因为您不希望用户名/密码通过标准 HTTP。
关于security - 如何保护我的 API 服务免遭 api key 盗版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9633697/