nit*_*owa 5 firefox google-maps google-api geolocation electron
因此,我一直在跨平台电子和网络应用程序中使用 Google 地图地理定位 API。
在我的浏览器中使用不再那么新的navigator.geolocation.getCurrentPosition(callback)浏览器(chrome/chromium/firefox,我想还有其他大浏览器)就像以前一样工作。然而,在 Electron 中,系统会提示我首先注册 API。
令人惊讶的是,Google 地图要求您提供付款地址,然后使用该地址对您的 API 调用进行计费。(您可以在这里阅读: https: //developers.google.com/maps/billing/understanding-cost-of-use)
根据这些人的说法https://github.com/electron/electron/issues/13143 Electron 附带了一个由每个人共享的内置 API 密钥(除非您设置自己的)
当然,问题是我的浏览器从哪里获取 API 密钥?所有浏览器都带有相同的密钥吗?谁为所有这些来自 Firefox 的呼叫付费?显然,人们不能遵守每月 200 美元的免费配额。
是否存在未记录的元 API,用于动态获取浏览器使用的 API 密钥?
也许有人可以阐明这一点。干杯。
深入研究该主题,我发现了以下内容:
浏览器二进制文件确实带有内置 API 密钥。显然,它们是按每个发行版进行管理的(例如,Arch 上的 chromium 与 Ubuntu 上的 chromium 具有不同的版本等)
您可以通过检查来验证这一点
git clone https://aur.archlinux.org/chromium-dev.git
它将漫不经心地声明他们的密钥PKGBUILD(这是开源的,所以我不会在这里透露任何秘密,尽管其中一个字段的名称不太恰当)。
# Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
# NOTE: These are for Arch Linux use ONLY. For your own distribution, please
# get your own set of keys. Feel free to contact foutrelis@archlinux.org for
# more information.
_google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM"
_google_default_client_id="413772536636.apps.googleusercontent.com"
_google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4"
Run Code Online (Sandbox Code Playgroud)
在 google 上快速搜索一下,就会发现很多项目已经盗用了 Arch 的密钥。
除了这是 arch-chromium 方面密钥管理中一个明显的漏洞之外,问题的范围还远不止于此。
您可能已经注意到,移动设备上的 google-maps-app 在没有启用 GPS 服务的情况下也可以工作(因此很可能会退回到基于 IP 的 API)。现在假设有人对该密钥进行了逆向工程。谷歌还能做什么?全面禁止谷歌地图的每一次安装似乎是自杀行为。强制使用补丁来替换损坏的密钥只会将问题推迟到再次损坏为止。
互联网上似乎流传着一些黄金API 密钥。有些属于大公司,有些属于开源基金会,有些则属于普通人。
对于大多数意图和目的来说,这些对于我们作为开发人员来说并没有太大的兴趣。如果我们开发移动应用程序,我们就会获得 GPS,无论如何,它都要准确得多。如果我们制作 Web 应用程序,我们就可以使用用户浏览器供应商的黄金 API 密钥(可能会也可能永远不会用完其配额)。
如果我们制作依赖于位置数据的桌面应用程序,我们才会开始注意到这些机制的存在(从表面上看,无论如何,这似乎很愚蠢。桌面应该留在桌子上,而不是四处移动)。
但每隔一段时间,您可能会遇到这个问题,并且您必须问自己一个道德(或法律?)问题:存储在 GPL 许可文件中的密钥是否可供获取。
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |