在代码中隐藏API密钥(Python)

时间:2011-09-17 22:21:25

标签: python api google-maps google-maps-api-3

我在一些Python代码中使用API​​密钥,我希望分发它。此API密钥适用于Google地图。在分发此API密钥时是否存在任何安全问题?如果是,那么最好隐藏这个?

5 个答案:

答案 0 :(得分:5)

没有必要,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现在不需要密钥。

http://code.google.com/apis/maps/documentation/javascript/

答案 1 :(得分:1)

你不能隐藏这个。您的程序需要访问它,黑客只需使用调试器,虚拟机或修改后的Python实现等工具,如果他/她真的想知道API密钥。

我认为无论如何都不需要隐藏Google Maps API密钥,因为当API正在使用时,网页也会在其源代码中包含此密钥。您应该参考文档或获取密钥的页面,看它是否是私钥。

答案 2 :(得分:0)

如果您为“超级用户”提供使用谷歌地图的工具,那么期望他们提供自己的Google API密钥是合理的。如果这不是您的用户的选项,您将需要一个您的应用程序访问的Web服务作为代理,以便您的私钥不会暴露。如果适用,您仍然需要设计一种验证用户身份的方法。

答案 3 :(得分:0)

您可以通过各种方式对密钥进行模糊处理,但这不值得付出努力。混淆是保护信息的一种薄弱方式,在这种情况下,无论如何,您的信息安全性并不是特别重要。

API密钥的重点主要在于API供应商(Google,此处)可以监控,限制和撤销您的应用程序对其服务的使用。它应该是私密的,你不应该随意或有意地分享它,但如果其他人得到它的话,它不是世界末日。

答案 4 :(得分:0)

Google Maps API密钥仅适用于自2010年5月以来已正式弃用的版本2.强烈建议您使用API​​的版本3,这样做要好得多,并且不需要API密钥。