Google地理编码API安全性

问题描述 投票:4回答:1

我在广泛阅读谷歌推荐的方法后问这个问题,但我对所有这些方法都有疑问,让我来解释一下这种情况。

我使用地理定位和地理编码API的组合来了解大致的状态位置,然后显示相关内容。需要从浏览器中明确调用地理位置API以获得用户的适当地理位置。 Google为此API提供了基于HTTP Referrer的限制。我知道有人可以轻松欺骗引荐来源并使用相同的API密钥进行调用。即使谷歌推荐这一点,我也没有看到巨大的优势。

另一方面,Google不允许使用HTTP Referrer进行地理编码API,但它确实允许使用MAPS JavaScript API。但是,如果您不使用Google地图,则使用该API会违反Google的条款。现在,谷歌建议将使用地理编码Web服务API的代码移到后端,以便保护您的密钥。但是最终我需要将结果提供给可公开访问的前端Web应用程序,我只能进行基于浏览器的Ajax调用,首先获取地理定位以提供地理编码,我最终需要进行Ajax调用才能获得我的地理编码信息。然后有人可以轻松地抓住我的终点来捎带并尽可能多地调用地理编码API。因此,对于这样的情况,我想知道什么是理想和安全的处理方式。可能有其他API可能是一个理想的情况。

google-api google-geocoding-api google-geolocation
1个回答
1
投票

在我的情况下,我没有做任何地图,所以它完全是服务器端,以获得两点之间的纬度,经度和行驶距离。今天这可以从谷歌的支持中获得帮助,如果你正在使用地图,那么这些链接可能会提供进一步的见解。

关于API限制,请注意HTTP引用不适用于Geocoding API,因为HTTP引用只能用于客户端服务。换句话说,Geocoding是一种Web服务API,只应在服务器端实现时使用。应该对Web服务API使用IP地址限制。但是,如果您在网站中使用地理编码API,则IP地址限制将不起作用。请在以下链接中检查每个API的适当限制:

https://developers.google.com/maps/api-key-best-practices#api_key_table

要使其工作,您应该创建一个单独的密钥,并在Geocoding API请求URL中使用新密钥。您可以使用“API限制”为此密钥添加限制,并仅将其限制为地理编码API。如果您不想创建另一个密钥,可以继续使用当前密钥,但请确保更改实施并使用Maps JavaScript API中的客户端地理编码服务。在这种情况下,请参阅此文档:

https://developers.google.com/maps/documentation/javascript/geocoding

另一个建议是从您的ISP获取静态IP地址,特别是如果您计划在公共网站上使用它。出于开发目的,一个合理的解决方案是获得三个单独的密钥:一个用于登台和测试,另一个用于服务器端请求,第三个用于客户端请求。这样,您就可以确保您的API密钥受到保护。

© www.soinside.com 2019 - 2024. All rights reserved.