我知道我們可以在負載均衡器中使用 IP 地址和域名來限制 API 呼叫,但我想知道使用應用程式限制 API 呼叫的可能性,假設最終用戶正在使用觸發 API 請求JAVA SDK 包,所以通過分析負載均衡器日志,我們知道 API 請求來自 JAVA 應用程式,所以我想根據使用的應用程式限制 API 請求?是否可以?
此外,如果您可以與您的解決方案分享一個示例,那將會很有幫助。我在這里先向您的幫助表示感謝。
注意:我已經為靜態外部 IP 配置了一個帶有負載均衡器的容器,所以我指的是從客戶端到我的服務器或負載均衡器的 API 呼叫。
uj5u.com熱心網友回復:
不,這完全不可能。你去“我可以分析負載平衡日志以查看它是一個 java SDK impl 執行它”的部分是基于客戶端發送給你的一些資訊 - 可能是一個User-Agent:標題。這可以偽造,微不足道。
例如,如果您給 JavaSDK 請求提供比 Chrome(瀏覽器)更多的限制,那么用 java 撰寫的 API 的用戶只會將 chrome 的 User-Agent 發送給您。
API 限制基于您無法偽造的內容,例如訪問密鑰。您無法制作某些應用程式無法使用的訪問密鑰 - 所有程式都已完成,這意味著它們都可以做所有其他應用程式都可以做的事情。
您唯一的追索權是合法的:作為分發 API 密鑰的一部分,接收者會簽署一份合同。您可以在合同中規定,例如,您不得與您的用戶代理撒謊。
然而,這樣的合同是否可執行首先是值得懷疑的。“抓住”濫用 API 的人(從限制較少的應用程式發送用戶代理)是很困難的,而且你不太可能對“被抓住”施加嚴厲的懲罰作為威懾并使其合法地堅持下去。
換句話說,實際上答案是:不,你不能那樣做。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/416031.html
標籤:
