sha*_*ani 6 google-api google-geocoding-api google-geolocation
我在广泛阅读谷歌推荐的方法后问这个问题,但我对所有这些方法都有问题,让我解释一下情况。
我使用地理定位和地理编码 API 的组合来了解大致的状态位置,然后显示相关内容。显然需要从浏览器调用地理定位 API 才能获得用户的适当地理定位。Google 为此 API 提供了基于 HTTP Referrer 的限制。我知道有人可以轻松欺骗引用者并使用相同的 API 密钥进行调用。即使谷歌推荐了这个,我也没有看到巨大的优势。
另一方面,Google 不允许 HTTP Referrer 用于地理编码 API,但它允许用于 MAPS JavaScript API。但同样,如果您不使用 Google 地图,那么使用该 API 违反了 Google 的条款。现在 google 建议将使用地理编码 Web 服务 API 的代码移到后端,以便您的密钥得到保护。但由于最终我需要将结果交付给可公开访问的前端 Web 应用程序,并且我只能进行基于浏览器的 Ajax 调用来首先获取地理定位以提供给地理编码,因此我最终需要进行 Ajax 调用以获取我的地理编码信息。然后有人可以轻松地锁定我的端点以搭载并尽可能多地调用地理编码 API。所以对于这样的情况,我想知道什么是理想和安全的处理方式。
小智 6
就我而言,我没有制作任何地图,因此纯粹是在服务器端获取纬度、经度和两点之间的行驶距离。今天来自 Google 支持的信息可能会有所帮助,如果您使用地图,那么这些链接可能会提供进一步的见解。
关于 API 限制,请注意,HTTP 引用网址不适用于地理编码 API,因为 HTTP 引用网址只能用于客户端服务。换句话说,地理编码是一个 Web 服务 API,只能在服务器端实现上使用。IP 地址限制应用于 Web 服务 API。但是,如果您在网站中使用地理编码 API,则 IP 地址限制将不起作用。请在以下链接中查看每个 API 的适当限制:
https://developers.google.com/maps/api-key-best-practices#api_key_table
要实现此目的,您应该创建一个单独的密钥并在地理编码 API 请求 URL 中使用新密钥。您可以使用“API 限制”对此键添加限制,并将其限制为仅适用于地理编码 API。如果您不想创建另一个密钥,您可以继续使用当前的密钥,但请确保更改您的实现并使用 Maps JavaScript API 中的客户端地理编码服务。这种情况,请参考这个文档:
https://developers.google.com/maps/documentation/javascript/geocoding
另一个建议是从您的 ISP 获取静态 IP 地址,特别是如果您计划在公共网站上使用它。出于开发目的,一个合理的解决方案是获取三个单独的密钥:一个用于暂存和测试,另一个用于服务器端请求,第三个用于客户端请求。这样,您就可以确保您的 API 密钥受到保护。
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |