如何在Ionic / Cordova应用程序中保护我的Google Maps Javascript V3 API密钥?

时间:2015-03-20 00:53:04

标签: javascript google-maps cordova google-maps-api-3 ionic

我目前正在开发一款Ionic app,我有一个嵌入式Google地图。 Google Maps V3 API建议使用API​​密钥来跟踪使用情况。问题是,当我为浏览器使用创建API密钥时,我只能通过指定引用来保护我的API密钥。现在我在移动设备上没有推荐人,所以我该怎么办才能避免其他人也使用我的API密钥?

2 个答案:

答案 0 :(得分:4)

我看到它的方式有两种选择:

  1. 根本无法保护它,因为为了让某人获得密钥,他们需要从您的应用程序中提取密钥。在大多数情况下,即使有人要获得密钥,但是他们会将它用于任何恶意的东西是值得怀疑的,因为他们可以获得自己的密钥。这是一个风险,你必须按项目评估项目,并确定它是否是你可以容忍的。
  2. 第二个选项是将其保护到特定的引荐来源,然后欺骗设备上的Web视图使用的引荐来源。有关如何执行此操作的堆栈溢出的示例。请参阅Specifying HTTP referer in embedded UIWebView
  3. 无论哪种方式,某人仍然可以获取您的密钥并使用它来代表您提出请求。他们可以通过欺骗引用者自己来做到这一点,即使你走这条路线也是如此,因为它是客户端浏览器提供的标题。

答案 1 :(得分:3)

我认为最好的方法是创建一个代理服务器,使用服务器密钥来调用API,并且要求用户使用其userID登录(如果您的应用需要登录)或者可能是设备ID。至少你可以控制正在发生的事情。