如何限制基于应用程序的API调用



我知道我们可以在负载平衡器中使用IP地址和域名限制API调用,但我想知道使用应用程序限制API调用的可能性,比如说,终端用户正在使用JAVA SDK包触发API请求,因此通过分析负载平衡器日志,我们知道API请求来自JAVA应用程序,所以我想根据使用的应用程序限制API请求?有可能吗?

此外,如果您能与您的解决方案共享一个示例,也会很有帮助。感谢您提前提供的帮助。

注意:我为静态外部IP配置了一个带有负载平衡器的容器,所以我指的是从客户端对服务器或负载平衡器进行的API调用。

不,这是完全不可能的。"我可以分析负载平衡日志,看看它是一个java SDK impl在做这件事"的部分是基于客户端发送给你的一些信息——可能是User-Agent:这是可以伪造的,非常简单

例如,如果你给JavaSDK请求比Chrome(浏览器(更多的限制,那么用java编写的API用户只会向你发送Chrome的User-Agent。

API限制是基于不能伪造的东西,比如访问密钥。你不能制作某些应用程序不能使用的访问密钥-所有程序都是完整的,这意味着它们都可以做其他程序能做的事情。

您唯一的追索权是合法的:作为分发API密钥的一部分,收件人签署合同。您可以在合同中规定,例如,您不得与您的用户代理撒谎。

然而,这样的合同是否可以执行首先是可疑的"捕获";有人滥用API(从限制较少的应用程序发送用户代理(是很困难的,而且你不太可能对"被抓住"施加重罚作为威慑,并使其合法化。

换句话说,有效的答案是:不,你不能那样做。

相关内容

  • 没有找到相关文章

最新更新