2013-04-08 75 views
4

libspotify的使用條款聲明密鑰應以安全方式存儲。存儲我找到的密鑰的唯一建議是編譯應用程序並分發二進制文件。由於使用調試器可以輕鬆檢索關鍵字,因此我很難將其視爲其他任何事物而不是安全性。防止濫用libspotify密鑰

這是Spotify建議的方法嗎?如果我只編譯包含密鑰的文件並將我的應用程序的其餘部分作爲開​​源代碼分發,那麼該怎麼辦?

我想我的問題的本質是:我如何避免違反ToS而不要求每個用戶都獲得自己的密鑰?

+0

此問題似乎是無關緊要的,因爲它涉及spotify的服務條款。只有關於spotify API的問題是關於主題的。 – quetzalcoatl 2013-12-13 14:45:55

回答

6

邏輯是這樣的(我爲Spotify工作):要求我們的開發人員跳過一堆箍環,以便將他們的API密鑰放入他們的二進制文件中是不值得的 - 開發人員將被關閉每個人都會不高興。

但是,我們不希望密鑰被傳播,只是因爲如果每個人都使用一個密鑰,我們就無法可靠地跟蹤它,並且如果該密鑰最終被惡意使用並且我們殺死它,的應用程序將突然被打破。

要想在可怕的汽車類比中強行推測,可以想象API密鑰是一些有價值的物品,而您的應用程序就是汽車。如果您將該物品放在汽車座位上(即以明文形式顯示您的API密鑰),則實際上您正在邀請某人入侵併竊取(即在您的應用中使用您的密鑰)。如果你把它放在手套箱裏(編譯成你的二進制文件),如果有人因爲知道該物品在手套箱中而插入你的汽車(拆卸你的應用程序),那麼無論如何它都是遊戲。

簡而言之:編譯密鑰絕對是默默無聞的安全措施,但我們認爲這足以阻止人們隨意重複使用其他應用程序的API密鑰,因爲直接從我們那裏獲取一個API密鑰非常微不足道。

我想我的問題的本質是:我如何避免違反ToS而不要求每個用戶都獲得自己的密鑰?

如果你以二進制形式發佈你的應用程序,編譯它就好了。如果您以源代碼形式發佈它,則不能真正包含密鑰。

+0

我明白了,謝謝你澄清。然而,我可以請你擴展以下內容,關於你的最後陳述:我明白我不允許將密鑰本身作爲開源代碼分發,但是如何將它作爲目標代碼重新分發(密鑰),同時仍然保留其餘的資源打開?我得到的當然是這樣的:我可以將我的應用程序的源代碼(例如)與我的密鑰的編譯版本一起放在公共GitHub存儲庫上嗎?我明白到最後,我對我的鑰匙負責。我只是對Spotify在這方面的立場感到好奇。 – 2013-04-10 06:42:22

+0

我將不得不從這個問題中解脫出來,因​​爲它在邊緣是正確的 - 是的,它已經被編譯,但appkey.o將成爲一個非常容易的目標。 – iKenndac 2013-04-10 09:03:28

+0

可以理解。我不想強迫你說任何可能會讓你陷入麻煩的事情。無論如何,感謝您的幫助。我只是爲自己保留我的鑰匙,並且現在就分配資源。 – 2013-04-11 06:15:48