2012-03-09 129 views
2

我想用自己的简单服务推出自己的REST API。我希望有三个基本计划,在可用的需求/秒方面有所不同。如何保护我的API服务免受api-keys盗版

有没有简单的方法来防止密钥切换?假设有人购买了“企业”api-key并将其发送给其他人?现在其他人可以访问“企业”级功能,而无需真正为此服务付费。

当然我会实施某种限速,但这不是重点。我只是想让实际购买API密钥的人可以使用API​​。

在此先感谢!

+0

每个键只允许一个活动连接是一个选项? – honeyp0t 2012-03-09 12:51:34

回答

2

无法仅使用API​​密钥来完成此操作。你可以尝试做某些事情,比如只接受来自特定IP地址的某些API密钥,但是存在一系列问题。唯一可行的方法是强制客户端进行身份验证。

您可以使用用户名/密码进行此操作,他们需要将这些信息发送给您进行验证,并且您可以检查该用户名是否有权访问计划/服务。您也可以通过相互认证的SSL来执行此操作,您可以向客户端颁发自签名客户端身份证书,并在他们连接到服务时使用它们进行身份验证,然后您可以查看该客户端是否可以访问计划/服务。请注意,无论是哪种情况,都需要实施SSL,因为您不希望用户名/密码通过标准HTTP。

+0

这就是我正在寻找的答案。谢谢! – Pono 2012-03-09 15:38:51