我正在研究以访问Google API的解释语言创建桌面应用。据我所知,有一个安全漏洞。客户端密钥将在代码中公开,即使我使用C ++或Java创建应用程序,代码也可以反编译\反汇编,理论上可以找到秘密。除了混淆代码之外还有吗?我希望能够分发其他人使用的代码。
答案 0 :(得分:2)
OAuth 2.0 Threat Model and Security Considerations(rfc6819)已将“获取客户机密”列为威胁。
正如Google doc使用OAuth 2.0 for Installed Applications所说:
这些应用程序分发到各台计算机,并假设这些应用程序无法保密。
事实上,没有客户“秘密”。试图在已安装的应用程序中混淆秘密是徒劳的,因为可以使用大量的逆向工程和调试工具来恢复机密。
当然,你应该尽力保护秘密,但最后,一个积极性高的黑客可以随时在已安装的应用程序中获取它。所以这是秘密与提取难度的价值。客户端密钥的值是模拟应用程序。它不提供对用户数据的任何访问。
我的建议: 只要把风险继续下去并混淆它。或者你可以 考虑使用代理模式(move the secret to a web server acting as an API proxy)。