【发布时间】:2011-11-19 11:16:06
【问题描述】:
我在一些我希望分发的 Python 代码中使用 API 密钥。此 API 密钥适用于 Google 地图。分发此 API 密钥是否存在任何安全问题?如果有,最好如何隐藏?
【问题讨论】:
-
如何获取python的API密钥?我一直在寻找它
标签: python api google-maps google-maps-api-3
我在一些我希望分发的 Python 代码中使用 API 密钥。此 API 密钥适用于 Google 地图。分发此 API 密钥是否存在任何安全问题?如果有,最好如何隐藏?
【问题讨论】:
标签: python api google-maps google-maps-api-3
没有必要,Google API 密钥与您的域相关联,因此在使用时会检查引荐来源网址。
You can read more about how it works here
相关部分
请注意,http://www.mygooglemapssite.com/ 的密钥仅在使用此地址访问该站点时才被接受。如果网站是通过 IP 地址(例如http://10.1.2.3/)或使用 DNS CNAME 记录别名为 www.mygooglemapssite.com 的主机名访问的,则不会被接受。
他们的版本 3 API 现在不需要密钥。
【讨论】:
你无法隐藏它。您的程序需要访问它,如果黑客真的想知道 API 密钥,他/她只需使用调试器、虚拟机或修改后的 Python 实现等工具即可。
我认为无论如何都没有必要隐藏 Google Maps API 密钥,因为在使用 API 时,网页的源代码中也会包含此密钥。您应该参考您获得密钥的文档或页面,看看它是否是私钥。
【讨论】:
如果您为“高级用户”提供使用 Google 地图的工具,那么期望他们提供自己的 Google API 密钥是合理的。如果这不是您的用户的选择,您将需要有一个 Web 服务,您的应用程序可以访问该服务以充当代理,这样您的私钥就不会暴露。如果适用的话,您仍然需要设计一种验证用户的方法。
【讨论】:
您可以通过各种方式混淆密钥,但这不值得。混淆是保护信息的一种弱方法,在这种情况下,您的信息安全并不是特别重要。
API 密钥的意义主要在于 API 供应商(此处为 Google)可以监控、限制和撤销您的应用程序对其服务的使用。它是私密的,你不应该粗心或有意地分享它,但如果其他人得到它,这并不是世界末日。
【讨论】:
Google Maps API 密钥仅适用于第 2 版,自 2010 年 5 月起已正式弃用。强烈建议您改用第 3 版的 API,它要好得多,并且不需要 API 密钥。
【讨论】: