2011-02-08 32 views
1

序言:這與this question非常接近,並且我已閱讀this article瞭解系統的工作原理以及當前實施中的缺陷。在您易讀的代碼中發佈只讀Twitter OAuth consumer_key/secret有多危險?

我們正在開發一個WordPress插件(PHP)需要只讀訪問用戶的帳戶,(訪問狀態/ home_timeline API方法)。這個插件將被公開分發給人們使用,並且應該儘可能易於安裝,因此希望在插件代碼中嵌入預先存在的應用程序的應用程序密鑰。

我知道可以使用密鑰開發另一個應用程序,但由於我們沒有寫入帳戶,因此風險必須足夠大以至於唯一的選擇是要求插件的每個用戶生成他們自己的應用。

鑑於以上情況,我們的comsumer_key/consumer_secret可以以何種方式被使用,而不是按照預期使用,以及可能的結果是什麼(除了Twitter相關的smackdowns外)?

回答

4

一般最小。

消費者令牌對自己無用,獲得用戶訪問令牌對的唯一方法是讓用戶通過twitter.com上的授權流程。這將成爲用戶在授權頁面上看到的品牌,所以如果原始頁面被用來模仿您自己的品牌,用戶會認爲他們實際上允許您訪問其帳戶,而不是原始網站的實際所有者。一旦第三方獲取用戶訪問令牌對,並且只讀應用程序,則會發生兩個危險的操作。其朋友的所有私人信息都可以通過API訪問他們的DM。兩個人可以執行某種DOS攻擊併吞噬用戶速率限制,從而使API對於所有未列入白名單的第三方應用程序無關緊要。

如果消費者令牌用於構建垃圾場,這會對Twitter的資源造成重大損失,他們可能會禁用或重置密鑰。在你獲得新密鑰並且每個人都更新到新版本之前,你的代碼的所有副本都將停止工作。

讓我知道如果有任何不明確。

+0

我瞭解這些潛在情況。最後,我們選擇了一個不同的場景,(一個處理Twitter和瘦客戶端插件的中央服務器)。儘管對於後代來說,這是一個很好的答案。 – beseku 2011-02-09 11:16:12