我计划用Python
为Spotify
编写一个Kodi (former XBMC)
插件。不久前,Spotify弃用了他们的旧库libspotify
,并引入了一个新的基于ReST
的{WebAPI
使用OAUTH
机制授权应用程序使用特定于用户的数据。
因此,我需要一个Client ID
和一个Client Secret
。当Client ID
是公共的时,我可以在源代码中存储它。但是Client Secret
呢?应用程序需要这个秘密才能在spotify上对自己进行身份验证。因此,它也需要部署。在
如何安全地部署此机密,以便插件的用户无法读取该机密?
我不能使用混淆技术,因为python是被解释的,用户只需启动一个解释器,导入我的模块并读出重建的秘密。加密密钥也是如此。应用程序需要能够解密秘密,因此,我也需要部署加密密钥。这是鸡还是蛋的问题。在
有什么建议吗?其他软件如何解决这个问题?在
编辑:我刚找到这个RFC6819。似乎这是oauth
中的一个普遍问题。在
在这种情况下,您可以使用Implicit Grant Flow,它是为客户端应用程序而设计的,在客户端应用程序中,出于安全原因,存储机密是不切实际的。在
相关问题 更多 >
编程相关推荐