如何保护我的API并知道它的名称?

时间:2013-12-31 04:41:04

标签: api security oauth restful-authentication

我正在构建一个Web应用程序和Web API。 Web应用程序将对服务器执行ajax调用并接收JSON结果。 Web API也会发生同样的情况。

我计划让开发人员使用密钥来访问Web API,以便我可以收取使用它的费用。

问题是Web应用程序将使用Web API来获取网页的内容。有没有办法知道它是我的Web应用程序使用Web API还是有人试图劫持API,以便他们不必为此付费?

我在服务器上使用PHP。

2 个答案:

答案 0 :(得分:1)

很难完全保护,但有些技术可以提供帮助。 ApiAxle(免责声明:我的公司)为您提供了使用short lived keys的选项。在不知道你的密钥的情况下,leecher无法生成这些内容。与速率限制相结合,您可以更接近您想要的位置。

不是万无一失,而是一个开始。

答案 1 :(得分:0)

在尝试在网络上保护某些内容时,在尝试找到保护api的技术之前,考虑一下如何保护api提供的信息可能会很有用。

一个例子:

假设您的api提供伦敦当前的天气,您的网络应用程序是一个开放的网页,提供此信息,同时还显示一些网络广告。您不希望其他人使用api并在没有显示网络广告的情况下在其他地方显示Lonodn天气,因为这会破坏您从此服务中获得的唯一收入。

您可以通过提供短时间密钥或其他复杂协议来限制对API的访问,但问题是您提供的信息,伦敦天气,无论如何都可以在网页上的任何人使用。如果有人想“窃取”您的信息并在不同的网站上提供伦敦天气,他们只需编写一个加载您的Web应用程序的脚本,从网页读取信息并在自己的Web应用程序中显示。

如果某人能够访问该信息,那么他还可以编写一个脚本来读取此信息并在其他地方显示该信息。

保护信息实际上更多的是限制要提供访问权限,而不是限制 他们应该如何获取访问权限。如果您或您的客户以某种形式在网上免费提供此信息,则您不能(技术上)阻止其他人捡起并重新分发它。