我想从我的android / ios应用程序使用自动完成api。为此,我需要像这样调用url:
https://maps.googleapis.com/maps/api/place/autocomplete/json?input=paris&key=<myapikey>
问题是:是什么使别人不会从我的应用程序中提取我的api密钥,并将其用于自己的目的?这很重要,因为最后由我向Google收取使用费...
答案 0 :(得分:1)
您的意图是调用Places API网络服务。 Google Maps Web服务仅支持IP地址限制。
您可以在以下页面上检查每个API支持哪种限制类型:
https://developers.google.com/maps/faq#keysystem
为了保护与示例请求一起使用的API密钥,您应该创建一个中间服务器并从该服务器发送请求。因此,您的应用程序应将请求发送到中间服务器,中间服务器应将带有受保护的API密钥的Places自动完成请求发送给Google,并将响应传递回您的应用程序。在这种情况下,您可以使用中间服务器的IP地址来通过API密钥来保护未经授权的访问。
我希望这会有所帮助!
答案 1 :(得分:0)
如果您创建并中介服务器并为每个用户创建令牌,又创建阻止可疑行为的监视服务怎么办?
例如,普通用户会请求x times/per day || hour || ...
或
当用户首次运行应用程序时,应用程序会收到[encrypted api + decryption key]
并将其存储到钥匙串(适用于iOS)等安全位置
据我所知,如果您直接向google-map-api请求,总有一种嗅探数据包的方法。