3

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

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

你有什么意见?公开 API 密钥真的是一个安全漏洞吗?

4

1 回答 1

4

安全漏洞?从广义上讲,是的。但实际上,这些不是我们正在谈论的核发射代码。

关于可能发生的最糟糕的事情是,有人可能会拿走并使用您的应用程序的密钥来针对 Twitter 的 TOS 做一些事情,这最终会导致密钥被禁止。由于您没有分发用户令牌(从安全角度来看,这会更糟),因此没有用户数据容易受到攻击。由于任何人都可以在 2 秒内免费注册应用程序,因此进行这种冒充的唯一原因就是专门玷污您或您的应用程序的声誉。

您可以做的一件事是将它们排除在源代码之外,但要明确用户从源代码编译需要获取自己的密钥并将它们放在适当的位置,但将它们保留在您分发的二进制版本中。不是 100% 安全的,但会让它更难阻止一定数量的 n'er-do-wells。

于 2010-05-18T13:11:00.520 回答