2012-08-05 99 views
3

我正在構建一個使用Twitter API的(業餘)應用程序,該API支持通過OAuth協議進行身份驗證。隱藏祕密信息

OAuth登錄過程的一部分涉及爲每個應用程序分配一個使用者密鑰和使用者密碼(兩個字符串),用於生成與Twitter服務器通信的簽名。

Twitter開發者指南明確指出,應該保持「消費者機密」是一個祕密。這個密鑰在應用程序中永遠不應該是人類可讀的。「這顯然很重要,就像惡意個人獲得您的憑據一樣,他們可以模擬您的應用。

但是,我不明白這是如何實現的。爲了讓應用程序使用字符串,它必須以某種方式訪問​​應用程序(直接編碼到應用程序中,存儲在捆綁的數據庫中,或通過鏈接的Web服務訪問) - 並且如果應用程序可以訪問它,必須能夠被用戶訪問。它可以通過分割,字符轉換等來混淆,但不能以任何無法撤銷的方式(我可以看到)進行混淆。

This SO答案證實了我懷疑這是一個問題 - 我想知道自從2009年12月發佈以來是否有任何進展?

回答

1

移動設備的問題在於用戶手中。並且有足夠的時間/精力,用戶可以將任何數據從設備中取出。這不是一個OAuth安全問題,它是一個總體安全問題,實際上沒有答案。

+0

我明白了你的觀點 - 但在桌面設備上這不是更重要的問題,可以在其上安裝定製軟件來嗅探通信? – scubbo 2012-08-05 21:50:39

+0

任何時候,祕密信息(如客戶端ID和客戶端密碼)都在用戶的計算機上(桌面或移動設備),那麼可以找到它。 – 2012-08-05 22:15:34

+0

客戶端祕密的問題在於,一旦用戶擁有它,他們不僅可以訪問設備所在的帳戶,還可能訪問所有其他帳戶(如果可以嗅探相應的訪問令牌)。 – 2012-09-14 20:33:03