我正在构建一个Web应用程序和Web API。 Web应用程序将对服务器执行ajax调用并接收JSON结果。 Web API也会发生同样的情况。
我计划让开发人员使用密钥来访问Web API,以便我可以收取使用它的费用。
问题是Web应用程序将使用Web API来获取网页的内容。有没有办法知道它是我的Web应用程序使用Web API还是有人试图劫持API,以便他们不必为此付费?
我在服务器上使用PHP。
答案 0 :(得分:1)
很难完全保护,但有些技术可以提供帮助。 ApiAxle(免责声明:我的公司)为您提供了使用short lived keys的选项。在不知道你的密钥的情况下,leecher无法生成这些内容。与速率限制相结合,您可以更接近您想要的位置。
不是万无一失,而是一个开始。
答案 1 :(得分:0)
在尝试在网络上保护某些内容时,在尝试找到保护api的技术之前,考虑一下如何保护api提供的信息可能会很有用。
一个例子:
假设您的api提供伦敦当前的天气,您的网络应用程序是一个开放的网页,提供此信息,同时还显示一些网络广告。您不希望其他人使用api并在没有显示网络广告的情况下在其他地方显示Lonodn天气,因为这会破坏您从此服务中获得的唯一收入。
您可以通过提供短时间密钥或其他复杂协议来限制对API的访问,但问题是您提供的信息,伦敦天气,无论如何都可以在网页上的任何人使用。如果有人想“窃取”您的信息并在不同的网站上提供伦敦天气,他们只需编写一个加载您的Web应用程序的脚本,从网页读取信息并在自己的Web应用程序中显示。
如果某人能够访问该信息,那么他还可以编写一个脚本来读取此信息并在其他地方显示该信息。
保护信息实际上更多的是限制谁要提供访问权限,而不是限制 他们应该如何获取访问权限。如果您或您的客户以某种形式在网上免费提供此信息,则您不能(技术上)阻止其他人捡起并重新分发它。