Twitter xAuth vs开源

问题描述:

我正在开发一个开源的桌面twitter客户端。我想利用新的xAuth身份验证方法,但是我的应用程序是开源的,这意味着如果我直接将密钥放入源文件,这可能是一个漏洞(我是否正确?Twitter支持人员告诉我) 。Twitter xAuth vs开源

另一方面,将密钥直接放入二进制文件中也是没有意义的。我正在用python编写我的应用程序,所以如果我只提供pyc文件,由于Python的优秀反射功能,获得密钥需要多一秒。如果我用键创建一个小的.so文件,通过查看原始二进制文件(键具有固定长度和字符集)来获取键也很简单。

您的意见是?暴露API密钥真的是一个安全漏洞吗?

安全漏洞?广义而言,是的。实际上,这些不是我们正在谈论的核启动代码。

关于可能发生的最糟糕的事情是,有人可能会采取和使用您的应用程序的密钥来对Twitter的TOS做些什么,最终会导致禁用密钥。由于您没有分发用户令牌(从安全角度来看这会更糟糕),所以用户数据不会受到攻击。由于任何人都可以在2秒内免费注册一个应用程序,所以做这种模仿的唯一原因将是特意污染您或您的应用程序的声誉。

你可以做的一件事是让他们离开源代码,但要明确说明用户从源代码编译需要获取自己的密钥并将它们放在适当的位置,但将它们保留在您分发的二进制版本中。不是100%安全的,但是这样做会稍微困难一点,这会阻止一定数量的不用钻井。

+0

我得出了类似的结论。我的应用程序是开源的,但键是propiertary。如果密钥不存在,那么应用程序将回退到旧的身份验证方法(这很容易,这要感谢python和tweepy)。 – tamasd 2010-05-18 17:05:48