2012-01-16 48 views
6

我正在开发使用Twitter的多平台应用程序,包括通过oAuth进行身份验证。暴露不那么秘密的oauth密钥有什么风险?有没有解决方法?

我看过很多现有的应用程序,其中大部分应用程序似乎嵌入了ID和密钥。

这样做的风险是什么?难道只有某人可以“下载并检查”您的应用程序二进制文件才能提取您的密钥 - 然后可以假装为您的应用程序(网络钓鱼风格)?还是还有其他风险?


除了风险之外,是否有任何解决方法或解决方案的人知道?

我已经看到的一个解决方案是,有些人通过他们自己的网站路由所有Twitter调用来解决这个问题 - 例如, OAuth Twitter with only Consumer Key (not use Consumer Secret) on iPhone and android - 但这看起来相当慢并且代价高昂 - 如果我可以避免它(或者我误解了解决方案 - 它只是通过网站发送的身份验证吗?),我宁可不通过自己的Web服务路由所有呼叫

+0

我明白你的关注,但除非应用程序变得大众化,否则我并不认为这是一个问题。如果他们对您的应用程序进行反向工程,那么您只需输入非法的条款并起诉他们:) – f2lollpll 2012-01-16 07:28:26

回答

1

我提出的解决方法是使用经过身份验证的Web服务调用从Web服务器(通过SSL)获取密钥。您可以将其缓存在客户端应用程序中(只在内存中)。在需要时使用它,而无需再次连接到服务器。

我看到的缺点是,有人可能仍然可以在调试器下运行您的应用程序并检查内存并获取密钥。

相关问题