8

就我而言,我使用的是 Dropbox API。目前我将密钥和秘密存储在 JSON 文件中,以便我可以 gitignore 并将其保留在 Github 存储库之外,但从安全角度来看,显然这并不比将其包含在代码中更好。之前有很多关于保护/混淆 Python 的问题(通常是出于商业原因),答案总是“不要,Python 不是为了那个”。

因此,我不是在寻找一种保护代码的方法,而只是在寻找一种解决方案,让我可以在不泄露我的 API 详细信息的情况下分发我的应用程序。

4

3 回答 3

3

纯文本。如果代码被分发,任何混淆尝试都是徒劳的。

于 2012-04-27T21:03:06.323 回答
2

根据您的情况,有两种方法:

如果您正在为最终用户开发 Web 应用程序,只需以您的 API 密钥不会泄露的方式托管它。因此,将其 gitignored 保存在单独的文件中并仅将其上传到您的服务器应该没问题(只要您的服务器没有违规)。任何混淆都不会增加任何实际好处,只会给人一种虚假的安全感。

如果您正在为开发人员开发框架/库或为最终用户开发客户端应用程序,请让他们自己生成 API 密钥。

于 2012-06-18T10:21:06.193 回答
2

不知道这在您的情况下是否可行。但是您可以通过您托管的代理访问 API。

来自 Python APP 的请求转到代理,代理向 Dropbox API 发出请求并将响应返回给 Python 应用。这样,您的 api 密钥将位于您托管的代理上。可以通过您喜欢的任何方式控制对代理的访问。(例如用户名和密码)

于 2012-04-28T03:40:11.213 回答