我是 python 初学者,我想做一个基本的谷歌任务客户端。这将是一个原生应用程序。我不明白的一点是如何保持“客户机密”实际上是机密的,因为它要包含在程序代码中。
我搜索并找到了一个帖子,引用了谷歌论坛的帖子,并且基本上建议将其赠送。
我花了几个小时试图得到这个东西,但是,我现在没有答案。所以,我有两个问题要问:
- 泄露客户秘密的后果是什么?
- 如果让人们看到秘密是危险的,有没有办法保密,或者,有没有办法进行经典登录以支持应用程序特定密码登录谷歌帐户?
我是 python 初学者,我想做一个基本的谷歌任务客户端。这将是一个原生应用程序。我不明白的一点是如何保持“客户机密”实际上是机密的,因为它要包含在程序代码中。
我搜索并找到了一个帖子,引用了谷歌论坛的帖子,并且基本上建议将其赠送。
我花了几个小时试图得到这个东西,但是,我现在没有答案。所以,我有两个问题要问:
我假设您在谈论 OAuth。
是的,你嵌入了秘密——但不,这不是真正的秘密;在此处查看另一篇文章:OAuth - 在您的应用程序中嵌入客户端密码?.
谷歌的文档实际上也说了同样的话;来自:https ://developers.google.com/accounts/docs/OAuth2#installed
注册时获取的 client_id 和 client_secret 嵌入到你的应用程序的源代码中。在这种情况下,client_secret 显然不被视为秘密。
并且试图保护它是没有意义的——它必须通过网络到达谷歌,任何拥有Fiddler等的人都可以以纯文本形式观看它。
至于影响:我相信客户秘密背后的想法是保护客户供应商(就是你)。从理论上讲,如果我知道你的客户端密钥和秘密,我可以制作一个恶意网站/客户端,让用户合法登录,然后删除他们的所有任务,看起来你有责任。使用 Web 服务进行防御可能是有意义的,但对于已安装的客户端,用户可能是从某个地方(应用商店、网站等)下载的,希望确保它是合法的。