OAuth secret 和桌面应用程序

标签 oauth

我正在研究以访问 Google API 的解释语言创建桌面应用程序。据我所知,有一个安全漏洞。客户端密码会暴露在代码中,即使我用 C++ 或 Java 创建了应用程序,也可以反编译/反汇编代码,理论上可以找到密码。除了混淆代码之外,还有其他方法吗?我希望能够分发代码供其他人使用。

最佳答案

OAuth 2.0 Threat Model and Security Considerations(rfc6819)已将获取客户端 secret 列为威胁。
并作为谷歌文档使用 OAuth 2.0 for Installed Applications说:

These applications are distributed to individual machines, and it is assumed that these applications cannot keep secrets.


所以实际上没有客户端“ secret ”。试图混淆已安装应用程序中的 secret 是徒劳的,因为 secret 总是可以使用大量的逆向工程和调试工具来恢复。
当然,您应该尽最大努力保护 secret ,但最终,积极性高的黑客总是可以在已安装的应用程序中获取 secret 。所以这是 secret 的值(value)与提取的难度。客户端 key 的值是模拟应用程序。它不提供对用户数据的任何访问权限。
我的建议:
只是冒险继续并混淆它。或者你可以
考虑使用代理模式(move the secret to a web server acting as an API proxy)。

关于OAuth secret 和桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20725062/

相关文章:

javascript - 使用 javascript/API 提取用户提要

c++ - C++ 中 c_str() 和 char* 的不等式

java - 如何使用java在android中打开自定义方案

oauth - 如何在 IBM Worklight 6.0 中实现 OAUTH 2.0

oauth - 使用OAuth2传递youtube的访问 token 后,如何获取用户自己的视频列表

ios - 点击键盘 "Go"按钮和网页按钮有什么区别

javascript - 在 JS Web 应用程序中,如何确保拥有访问 token 的恶意用户无法刷新它?

javascript - 在 gmail 中使用 Nodejs 和 oauth

ruby-on-rails - Google oauth via devise 和 omniauth/oauth 不断请求访问

python - Python:从YouTube下载字幕