我知道我们可以在负载平衡器中使用IP地址和域名限制API调用,但我想知道使用应用程序限制API调用的可能性,比如说,终端用户正在使用JAVA SDK包触发API请求,因此通过分析负载平衡器日志,我们知道API请求来自JAVA应用程序,所以我想根据使用的应用程序限制API请求?有可能吗?
此外,如果您能与您的解决方案共享一个示例,也会很有帮助。感谢您提前提供的帮助。
注意:我为静态外部IP配置了一个带有负载平衡器的容器,所以我指的是从客户端对服务器或负载平衡器进行的API调用。
User-Agent:
头这是可以伪造的,非常简单。
例如,如果你给JavaSDK请求比Chrome(浏览器(更多的限制,那么用java编写的API用户只会向你发送Chrome的User-Agent。
API限制是基于不能伪造的东西,比如访问密钥。你不能制作某些应用程序不能使用的访问密钥-所有程序都是完整的,这意味着它们都可以做其他程序能做的事情。
您唯一的追索权是合法的:作为分发API密钥的一部分,收件人签署合同。您可以在合同中规定,例如,您不得与您的用户代理撒谎。
然而,这样的合同是否可以执行首先是可疑的"捕获";有人滥用API(从限制较少的应用程序发送用户代理(是很困难的,而且你不太可能对"被抓住"施加重罚作为威慑,并使其合法化。
换句话说,有效的答案是:不,你不能那样做。