我正在编写一个连接到twitter并使用OAuth API的应用程序,我的问题是存储consumer_key和consumer_key_secret
我如何安全地存储这些值,使用户难以获取它们,但仍然能够在我的应用程序中使用它们?
到目前为止,我已经将它们存储在pyc中并加密它们作为建议,但我对任何其他想法都持开放态度。
DRM(这就是您所描述的)的替代方案是通过您自己的受控机器上的服务器应用程序代理受保护的交互。由于您使用的是OAuth,因此您可以对自己的服务器使用与直接连接到twitter相同的身份验证凭据。
这种方法的优点是没有私钥泄露;您不会与您的消费者共享您的私钥,因为它存储在他们无法读取的远程服务器上,并且您的消费者不会与您共享他们的密码(相反,他们会获得一个OAuth令牌,将特定登录绑定到您的特定服务)。
如果我错过了什么,我很抱歉,但是xAuth有什么问题?这似乎是它的完美用例。你的应用程序将利用(并因此存储)消费者密钥(oauth_consumer_key
),没有办法:你必须有唯一标识你的应用程序的东西。你从用户那里获得凭据,传递这些并接收回oauth_token
和oauth_token_secret
,以允许你代表用户拨打电话。