Cordova谷歌地图API密钥足够安全

2024-02-12

我想知道我现在使用的 Google 地图 API 密钥是否安全。因为我有一个带有 Google 地图的 Cordova 应用程序,所以我生成了一个 API 密钥。我无法将我的域密钥列入白名单,因为它在手机上运行客户端。

此外,任何解压我的应用程序并阅读 index.html 或监听应用程序发出的 Web 请求的人都可以看到我的 API 密钥。

有什么方法可以保护我的 API 密钥吗?如果没有,使用 Google 地图或任何其他使用 API 密钥进行身份验证的第三方 API 是否安全?


我看到你的问题有两种可能的解决方案。我已经亲自实现了这两个功能(虽然不是使用 GMap),但仍然有一些缺点。

(1) 您可以使用后端技术将 API 密钥添加到您的请求中。为此,建议使用 Apache2 mod_proxy 和 mod_rewrite 之类的组合。然后,在您的应用程序中,您可以使用指向代理服务器的 URL,即https://yourserver.com/js/googleapis/maps/api/js https://yourserver.com/js/googleapis/maps/api/js并使 mod_rewrite 这个 URL 为类似的内容https://maps.googleapis.com/maps/api/js?key=API_KEY https://maps.googleapis.com/maps/api/js?key=API_KEY

mod_rewrite 的规则(未测试)可能如下所示:

RewriteCond %{QUERY_STRING}  ^$
RewirteRule ^/googleapis/maps/api/js (.*)$ https://https://maps.googleapis.com/maps/api/js?key=API_KEY

我想你应该已经明白了。这种方法的一大优点是您可以在您控制的服务器上完全隐藏您的私人信息。缺点是:如果您的应用程序导致高流量,您很可能会在代理计算机上遇到高流量。此外,如果攻击者找出您的 Google Maps API 代理端点的 URL,他们将很容易通过您的服务检索 GMaps API。

(2) 第二个选项是创建一个服务来检索您的 API 密钥。假设您的应用程序已经需要某种形式的身份验证,无论如何,您都会选择 API 密钥服务仅向注册和经过身份验证的用户分发 API 密钥的方式。

对于调试移动 Web 应用程序的更好工具而言,这两种方法都有其缺点。 IE。在桌面上使用 MacOS、XCode 和 Safari 的攻击者可以与您的 Cordova 应用程序建立调试会话,并逐步调试在您的应用程序内运行的 JS 代码。这意味着无论您在 Cordova 竞技场中做什么,都可以很容易地附加到您的应用程序并读取变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cordova谷歌地图API密钥足够安全 的相关文章

  • 使用地理编码发出一个请求后超出查询限制

    我正在使用 ggmap 的地理编码来查找不同城市的纬度和经度 昨天它工作得很好 但今天只发出一个请求后我就收到了 OVER QUERY LIMIT 事实上 如果我只是加载库并运行地理编码 它会抛出 OVER QUERY LIMIT 错误 g
  • 黑白 PNG 转 SVG

    我有一个河流 土地掩码来区分土地与河流 湖泊 该文件的大小为 W 43 200x H 21 600 由于 RAM 立即填满 因此无法打开该文件 我已将文件分成 3600 3600 块 它们可以正常打开 然而 我试图在谷歌地图中绘制陆地上的文
  • 有没有办法确定特定地址是否位于 x 英里内的路线沿线?

    有没有办法确定特定地址是否位于 x 英里内的路线沿线 Google 地图 API 是否支持此功能 我有一个地址数据库 我试图找出 Google 地图 API 确定的给定路线上的哪些位置 您可以设置获取折线 http code google
  • 当应用程序处于后台时,phonegap-plugin-push on("notification") 事件不会触发

    我正在 Ionic2 中使用以下插件进行推送通知 http ionicframework com docs native push http ionicframework com docs native push 预期行为 当应用程序关闭并
  • 创建地图后向 Google 地图 v3 添加标记

    我对使用 Google Maps API 比较陌生 现在我正在开发一个项目 用户可以选择各种搜索过滤器并查看结果自动显示在地图上 而无需重新加载页面 到目前为止 我的方法是创建一个控制地图的 Javascript 对象 以便我可以按照我的意
  • 没有提示为 Cordova Windows 应用程序签署证书

    我正在尝试使用命令行工具创建和安装 Cordova Windows 应用程序 跑步时cordova run windows device shell 显示此文本 Before installing this app you need to
  • 如何确定地址是否在地图上的某些边界内?

    我正在对此进行一些初步研究 但我对这个主题知之甚少 我需要创建一个解决方案 可以获取一个地址 然后确定该地址是否在某些预定义的边界内 可能是一系列相连的街道 有人对从哪里开始有一些建议吗 首先 您需要对地址进行地理编码 http code
  • SDK 管理器中缺少 Google Play 服务

    我想在我的应用程序中使用 Google 地图 我想在 SDK 管理器中安装 Google Play 服务 但是当我转到 SDK 管理器时 我没有看到 Google Play 服务 为什么 我该如何安装这个 我可以独立于 SDK Manage
  • 如何使用地点 ID 获得指向 google 地图上某个地点的直接链接

    我的应用程序中有谷歌地图上某个地点的地点 ID 有没有办法将地点 ID 放入 URL 中并使其直接链接到页面 还是必须通过URL来完成 我似乎在文档中找不到任何详细说明这一点的内容 我在下面尝试过 但它只是让我得到标准的谷歌地图页面 htt
  • 如何将定位模式从默认模式更改为“高精度/省电”(仅限设备)

    我正在尝试使用本教程实现谷歌地图来获取当前位置 Android 谷歌地图教程 https www androidtutorialpoint com intermediate android map app showing current l
  • 如何在phonegap上使用GCM处理android中的多个推送通知

    当推送通知到达时 如果用户无法查看该通知 他收到另一条通知 之前的通知正在更新为新的 但它不应该更新为最新的 我们需要单独显示每个通知 这可以使用 GCM 吗 我已经使用Phonegap来开发应用程序 PushPlugin 支持在有效负载中
  • google.maps.Geocoder.geocode() Geometry.location lat/lng 属性名称经常更改

    我有一个应用程序 我正在使用 Google Javascript 地理编码 API 来获取地址的纬度 经度 代码是这样的 geocoder new google maps Geocoder geocoder geocode address
  • 使用 Google 地图 API 进行反向地理编码

    我正在研究 JavaScript Google Map API 版本 3 更准确地说 正在研究反向地理定位 在 的帮助下官方文档 http code google com intl fr apis maps documentation ge
  • cordova 使用什么 js“引擎”?

    Cordova 使用什么 JS 引擎 它是特定于平台的还是跨所有平台的一个标准 意味着 iOS 的 safari 和 Android 的 chrome 以及 Windows 可能的 IE 标准 或者跨所有平台的 Cordova JS 引擎
  • Google 地图无法使用 XHTML Doctype(文档类型)

    到底为什么如果我们在 Google 地图上使用 Doctype 总是有可能出现无法正确显示 Google 地图的问题 在最近的一个案例中 这个 Doctype 只花了我 2 天的时间 却没有任何生产力 多么令人厌恶的案件 这次我得到了一位同
  • 如何免费使用谷歌路线API

    我使用 Google Directions Api 的限制是每天 2500 条路线查询 而且是免费的 一切正常 现在 当它明确写入时 在请求 api 时 它会突然出现此错误https developers google com maps d
  • 如何在Android上获取角度中的按键事件?

    我们如何在 Android 上的 Angular 中获取按键事件及其值 我使用phonegap Cordova Angular JS
  • Google 地图 v3 - 阻止 API 加载 Roboto 字体

    Google 将样式添加到地图容器中以覆盖我的样式 我知道如何解决这个问题 但API v3 8 9 exp 还加载了我并不真正需要 想要的网络字体 Roboto 有什么设置 选项 方法可以解决这个问题吗 我可以阻止 API 添加额外的 CS
  • 获得 IAP 产品响应后出现 Objective-C 错误

    此代码来自 Phonegap 代码 IAP 插件 错误发生在 发送的js 之后的代码行上 除了最后一个 nil 之外 发送到该函数的所有元素均非零 我什至将它们注销以确保它们已发送 该代码直接来自插件 https github com us
  • 可拖动的非模态弹出窗口 Jquery Mobile

    我希望在 Jquery mobile 中有一个弹出窗口 它不会阻止用户与页面交互 并且 data dismissible false 即当页面的另一部分与页面的另一部分交互并保持可见时 弹出窗口不会消失 我已经尝试过这个 popupNew

随机推荐