首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GPL桌面应用程序中处理twitter密钥的标准方法是什么?

GPL桌面应用程序中处理twitter密钥的标准方法是什么?
EN

Stack Overflow用户
提问于 2011-10-07 01:32:28
回答 3查看 606关注 0票数 6

在开发需要访问twitter的桌面应用程序时,必须以某种方式将应用程序的API密钥(应用程序特定的使用者密钥和使用者秘密)传递给用户。Twitter的API声明,应用程序的API密钥不能公开,如果发生这种情况,他们会重置它。当该应用程序在GPL下时,这意味着开发人员需要向用户提供源代码,该用户如何能够在不公开的情况下获得API密钥?有什么标准的方法来处理这个问题吗?谢谢。

编辑:为了澄清这种情况,我把它们存储在cree.py代码中的纯文本中,作为一个有意识的决定。但昨天Twitter支持小组联系我说,他们重新分配了我的钥匙,他们的理由如下:

你不应该索取另一个开发人员的用户密钥或消费者秘密,特别是如果它们将被存储或用于开发人员控制之外的操作。被泄露的密钥和秘密将被Twitter重置。例如,为了提供“tweet-品牌化”服务而要求这些值的在线服务是不允许的。https://dev.twitter.com/terms/api-terms如果应用程序的密钥是公开发布的,它允许外部方劫持应用程序的API访问。这带来了巨大的滥用风险,因此我们已经重置了您的API密钥。请注意确保这些密钥不会再次公开发布。

谢谢,Twitter策略

EN

回答 3

Stack Overflow用户

发布于 2011-10-07 04:13:23

那么,TTYtter显然使用了荣誉系统:

代码语言:javascript
复制
# yes, this is plaintext. obfuscation would be ludicrously easy to crack,
# and there is no way to hide them effectively or fully in a Perl script.
# so be a good neighbour and leave this the fark alone, okay? stealing
# credentials is mean and inconvenient to users. this is blessed by
# arrangement with Twitter. don't be a d*ck. thanks for your cooperation.
$oauthkey = (!length($oauthkey) || $oauthkey eq 'X') ?
        "XXXXXXXXXXXXXXXXXXXXX" : $oauthkey;
$oauthsecret = (!length($oauthsecret) || $oauthsecret eq 'X') ?
        "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" : $oauthsecret;

(我已经用Xs替换了实际的密钥,以使任何人不太可能不惜一切代价滥用它们,但请放心,它们在实际的来源中是完全存在的!)

此外,我在道路规则中没有看到任何东西实际上要求你保守这些秘密:我看到的最接近的东西是“被泄露的密钥和秘密将被推特重置”;不过,他们从来没有说过“妥协”意味着什么。

票数 1
EN

Stack Overflow用户

发布于 2012-06-15 09:57:46

我在这里可能很密集,但是为什么不将它们存储在配置文件、Windows注册表等中,然后从那里获取它们呢?然后在没有文件的情况下分发应用程序,您就完成了。

票数 1
EN

Stack Overflow用户

发布于 2013-06-22 07:27:34

也许另一种解决方案是使用服务器,服务器与twitter api交互,并且您将信息请求到您的服务器和桌面应用程序。

这样,API密钥只存储在服务器上,没有任何用户能够获得它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7682245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档