2012-08-05 100 views
3

我正在构建一个使用Twitter API的(业余)应用程序,该API支持通过OAuth协议进行身份验证。隐藏秘密信息

OAuth登录过程的一部分涉及为每个应用程序分配一个使用者密钥和使用者密码(两个字符串),用于生成与Twitter服务器通信的签名。

Twitter开发者指南明确指出,应该保持“消费者机密”是一个秘密。这个密钥在应用程序中永远不应该是人类可读的。“这显然很重要,就像恶意个人获得您的凭据一样,他们可以模拟您的应用。

但是,我不明白这是如何实现的。为了让应用程序使用字符串,它必须以某种方式访问​​应用程序(直接编码到应用程序中,存储在捆绑的数据库中,或通过链接的Web服务访问) - 并且如果应用程序可以访问它,必须能够被用户访问。它可以通过分割,字符转换等来混淆,但不能以任何无法撤销的方式(我可以看到)进行混淆。

This SO答案证实了我怀疑这是一个问题 - 我想知道自从2009年12月发布以来是否有任何进展?

回答

1

移动设备的问题在于用户手中。并且有足够的时间/精力,用户可以将任何数据从设备中取出。这不是一个OAuth安全问题,它是一个总体安全问题,实际上没有答案。

+0

我明白了你的观点 - 但在桌面设备上这不是更重要的问题,可以在其上安装定制软件来嗅探通信? – scubbo 2012-08-05 21:50:39

+0

任何时候,秘密信息(如客户端ID和客户端密码)都在用户的计算机上(桌面或移动设备),那么可以找到它。 – 2012-08-05 22:15:34

+0

客户端秘密的问题在于,一旦用户拥有它,他们不仅可以访问设备所在的帐户,还可能访问所有其他帐户(如果可以嗅探相应的访问令牌)。 – 2012-09-14 20:33:03