libspotify 的使用条款规定 key 应该以安全的方式存储。存储我发现的 key 的唯一建议是编译您的应用程序并分发二进制文件。我很难将其视为除安全之外的其他任何东西,因为使用调试器可以轻松检索 key 。
这真的是 Spotify 建议的方法吗?如果我只编译包含 key 的文件并将我的应用程序的其余部分作为开源分发怎么办?
我想我的问题的本质是这样的:如何在不要求每个用户获取自己的 key 的情况下避免违反 ToS?
最佳答案
逻辑是这样的(我为 Spotify 工作):要求我们的开发人员跳过一堆障碍只是为了将他们的 API key 放入他们的二进制文件中是不值得的 - 开发人员将被它关闭,每个人都会不开心。
但是,我们不希望 key 四处传播,因为如果每个人都使用一个 key ,我们就无法可靠地跟踪它,而且如果该 key 最终被用于恶意事件而我们将其杀死,那么许多应用程序会突然出现被打破。
用一个糟糕的汽车类比,假设 API key 是一些有值(value)的项目,而您的应用程序是一辆汽车。如果您将物品留在汽车座椅上(即,您的 API key 为纯文本),您实际上是在邀请某人闯入并窃取它(即,在他们自己的应用程序中使用您的 key )。如果你把它放在手套箱里(编译成你的二进制文件),如果有人闯入你的车(拆解你的应用程序),因为他们知道这个项目在手套箱里,无论如何游戏都结束了。
简而言之:在 key 中编译是绝对安全的通过默默无闻,但我们认为这足以阻止人们在直接从我们这里获得一个相当微不足道的情况下随意重用其他应用程序的 API key 。
如果您以二进制形式分发您的应用程序,编译它就好了。如果您以源代码形式分发它,则不能真正包含 key 。
关于spotify - 防止滥用 libspotify key ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15884916/