2010-05-17 83 views
3

我正在開發一個開源的桌面twitter客戶端。我想利用新的xAuth身份驗證方法,但是我的應用程序是開源的,這意味着如果我直接將密鑰放入源文件,這可能是一個漏洞(我是否正確?Twitter支持人員告訴我) 。Twitter xAuth vs開源

另一方面,將密鑰直接放入二進制文件中也是沒有意義的。我正在用python編寫我的應用程序,所以如果我只提供pyc文件,由於Python的優秀反射功能,獲得密鑰需要多一秒。如果我用鍵創建一個小的.so文件,通過查看原始二進制文件(鍵具有固定長度和字符集)來獲取鍵也很簡單。

您的意見是?暴露API密鑰真的是一個安全漏洞嗎?

回答

4

安全漏洞?廣義而言,是的。實際上,這些不是我們正在談論的核啓動代碼。

關於可能發生的最糟糕的事情是,有人可能會採取和使用您的應用程序的密鑰來對Twitter的TOS做些什麼,最終會導致禁用密鑰。由於您沒有分發用戶令牌(從安全角度來看這會更糟糕),所以用戶數據不會受到攻擊。由於任何人都可以在2秒內免費註冊一個應用程序,所以做這種模仿的唯一原因將是特意污染您或您的應用程序的聲譽。

你可以做的一件事是讓他們離開源代碼,但要明確說明用戶從源代碼編譯需要獲取自己的密鑰並將它們放在適當的位置,但將它們保留在您分發的二進制版本中。不是100%安全的,但是這樣做會稍微困難一點,這會阻止一定數量的不用鑽井。

+0

我得出了類似的結論。我的應用程序是開源的,但鍵是propiertary。如果密鑰不存在,那麼應用程序將回退到舊的身份驗證方法(這很容易,這要感謝python和tweepy)。 – tamasd 2010-05-18 17:05:48