暴露不那么保密的OAuth密钥有哪些风险?有什么解决方法吗?

7

我目前正在开发一个使用Twitter的多平台应用程序,包括通过oAuth进行身份验证。

我查看了许多现有的应用程序,其中大多数似乎都将id和secret key嵌入到应用程序中。

这样做的风险是什么?是否只是因为有人可以“下载和检查”您的应用程序二进制文件以提取密钥 - 然后可以假装成您的应用程序(欺诈样式)?还是还存在其他风险?


除了风险之外,还有没有任何解决方法或解决方案?

我已经看到的一个解决方案是,一些人通过将所有Twitter调用路由通过自己的网站来解决 - 例如OAuth Twitter with only Consumer Key (not use Consumer Secret) on iPhone and android - 但这似乎相当缓慢和昂贵 - 如果可以避免,我宁愿不通过自己的Web服务路由所有调用(或者我误解了解决方案 - 只是通过网站进行认证吗?)


我理解你的担忧,但除非这个应用程序变得受欢迎,否则我不认为这是一个问题。如果他们确实对你的应用程序进行了反向工程,你只需要在条款中说明这是非法的,并起诉他们 :) - f2lollpll
2个回答

1

1
我想到的解决方法是通过经过身份验证的 Web 服务调用从 Web 服务器(通过 SSL)获取秘密密钥。您可以在客户端应用程序中缓存它(仅在内存中)。需要时使用它而无需再次连接到服务器。
我看到的缺点是,有人可能仍然可以在调试器下运行您的应用程序并检查内存以获取密钥。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接