如何在 GitHub 上托管的 Python 脚本中保护开发人员密钥

2024-02-15

我正在开发一个基于 Python 的开源 Twitter 客户端,为了访问 Twitter API 并使用 OAuth 登录,我已向 Twitter 注册了我的客户端,他们给了我一个唯一的消费者密钥和消费者令牌(此后称为“开发者密钥”)。这些对于我的客户来说是独一无二的,并且我的客户的所有副本都必须使用相同的开发人员密钥。 现在,我必须在 Python 脚本 (main.py) 中使用开发人员密钥,并且由于它是脚本,因此没有二进制文件。另外,我必须将代码上传到 GitHub,因为我在 GitHub 上使用 git 进行内容跟踪。 如何保守我的开发者密钥的秘密?请记住,我计划将相同的客户端分发给用户。

密钥环似乎是最好的选择,但我想要一种只有应用程序才能访问密钥环的方法,甚至它的用户(应用程序外部)也不能访问。没有人应该能够通过查看我的代码来弄清楚如何访问密钥环。

注意:“要使用 Twitter API,您要做的第一件事是注册一个客户端应用程序。您注册的每个客户端应用程序都将提供一个消费者密钥和秘密。此密钥和秘密方案类似于使用的公钥和私钥对于那些熟悉的人来说,在 ssh 等协议中。此密钥和秘密将与您选择的编程语言中的 OAuth 库结合使用,来签署您向 API 发出的每个请求。正是通过此签名过程,我们相信识别出您身份的流量实际上就是您。” -http://dev.twitter.com/pages/auth http://dev.twitter.com/pages/auth


您可以使用OAuth.io https://oauth.io以此目的。

这个概念很简单:

  • 您只需将 API 密钥放入 OAuth.io 的密钥管理器中
  • 在源代码中,使用 OAuth.io 的公钥

这样你的密钥就不会被泄露。

使用 Twitter API 和 OAuth.io 检查此博文:http://blog.oauth.io/api-call-using-twitter-api/ http://blog.oauth.io/api-call-using-twitter-api/

完整的示例代码(在 javascript 中)位于 JSFiddle:http://jsfiddle.net/thyb/kZExJ/5 http://jsfiddle.net/thyb/kZExJ/5

$('button').click(function() {
    OAuth.initialize('oEcDIQahkO4TUAND-yTs-H6oY_M') //OAuth.io public key
    OAuth.popup('twitter', function(err, res) {
        // res contains tokens (res.oauth_token and res.oauth_token_secret)
        res.get('/1.1/statuses/home_timeline.json').done(function(data) {
            // do what you want with data
        })
    })
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 GitHub 上托管的 Python 脚本中保护开发人员密钥 的相关文章

随机推荐