我正在开发一个开源桌面Twitter客户端。我想利用新的xAuth身份验证方法,但我的应用程序是开源的,这意味着如果我将密钥直接放入源文件,它可能是一个漏洞(我是否正确?Twitter支持人员告诉我)
另一方面,将密钥直接放入二进制文件也没有意义。我在python中编写应用程序,所以如果我只提供pyc文件,那么获取密钥需要一秒钟,这要归功于Python的出色反射能力。如果我用密钥创建一个小的.so文件,通过查看原始二进制文件来获取密钥也很简单(密钥具有固定的长度和字符集)。
你有什么看法?暴露API密钥真的是一个安全漏洞吗?答案 0 :(得分:4)
安全漏洞?从广义上讲,是的。但实际上,这些并不是我们所讨论的核发射代码。
关于可能发生的最糟糕的事情是,有人可以使用你的应用程序的密钥来对付Twitter的TOS,这最终会导致密钥被禁止。没有用户数据会因为您没有分发用户令牌而受到攻击(从安全角度来看会更糟糕)。由于任何人都可以在2秒内免费注册一个应用程序,因此进行这种模仿的唯一理由就是玷污您或您的应用程序的声誉。
您可以做的一件事是将它们从源代码中删除,但要明确用户从源代码编译需要获取自己的密钥并将它们放在适当的位置,但将它们保留在您分发的二进制版本中。不是100%安全,但是使得它更难以阻止一定数量的n'er-do-well。