security - 如何保护我的 API 服务免遭 api key 盗版

标签 security api

我想通过一个简单的服务推出我自己的 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/

相关文章:

c - C 中的三重 DES 算法?

php - 防止使用 .htaccess 直接访问公用文件夹中的文件夹不起作用

javascript - 在 Angular JS 1.6 中处理 JSONP 响应

objective-c - Facebook SDK API IOS 发布到用户墙上时出错

javascript - 如何使用 JavaScript 循环使用 blogger API 检索所有帖子

php - 为 gif/jpg/png/pdf/doc、wmv 文件构建 PHP uploader ,可行,还是我应该购买一些东西?

security - Indy HTTP 服务器是否有内置方法来为某些文件/扩展分配安全性?

javascript - 我可以使用 jwcrypto 来验证 Google 生成的 OAuth2 id_token 吗?

list - API工作正常,但返回类名的实例

c# - 我应该在何时/何处在我的 ASP.NET MVC 项目中创建以下类?