libspotify 的使用条款规定密钥应以安全的方式存储。存储我找到的密钥的唯一建议是编译您的应用程序并分发二进制文件。我很难将其视为除了默默无闻的安全之外的其他任何东西,因为可以使用调试器轻松检索密钥。
这真的是 Spotify 建议的方法吗?如果我只编译包含密钥的文件并将应用程序的其余部分作为开源分发怎么办?
我想我的问题的本质是:如何避免违反服务条款而不要求每个用户获取自己的密钥?
逻辑是这样的(我在 Spotify 工作):要求我们的开发人员跳过一堆麻烦只是为了将他们的 API 密钥放入他们的二进制文件中是不值得的 - 开发人员将被它关闭,每个人都会不高兴。
但是,我们不希望密钥四处传播,因为如果每个人都使用一个密钥,我们就无法可靠地跟踪它,如果该密钥最终被用于恶意行为并且我们杀死了它,那么许多应用程序将突然出现被打破。
强行用一个可怕的汽车来比喻,想象 API 密钥是一些有价值的物品,而您的应用程序是一辆汽车。如果您将物品留在汽车座椅上(即以纯文本形式保存 API 密钥),那么您实际上是在邀请某人闯入并窃取该物品(即在他们自己的应用程序中使用您的密钥)。如果你把它放在手套箱里(将其编译到你的二进制文件中),如果有人因为知道该物品在手套箱里而闯入你的汽车(拆解你的应用程序),那么无论如何,游戏就结束了。
简而言之:通过隐匿方式编译密钥绝对是安全的,但我们认为这足以阻止人们随意重用其他应用程序的 API 密钥,因为直接从我们这里获取一个 API 密钥相当简单。
我想我的问题的本质是:如何避免违反服务条款而不要求每个用户获取自己的密钥?
如果您以二进制形式分发应用程序,则将其编译就可以了。如果您以源代码形式分发它,则无法真正包含密钥。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)