2010-07-15 147 views
2

處理將作爲/作爲源代碼(例如,訪問Delicious或Twitter的Wordpress插件)分發的插件中的OAuth的消費者密鑰的最佳方式是什麼?我知道OAuth is not designed with this in mind,還有proposals to solve it,但此時最佳做法是什麼?插件中的OAuth消費者密鑰

似乎有是兩種方法是:

  1. 將在源代碼中的消費者的祕密(也許混淆它一點點),希望沒有人會濫用它,並讓你的應用程序被禁止。如果有人這樣做,請申請一個新密鑰併發布更新到您的軟件。這是what Twitter recommends for the moment
  2. 告訴大家拿到自己的消費鑰匙。這可能會讓非開發人員感到困惑,他們只知道如何安裝插件,並阻礙了軟件的快速嘗試。

是否有任何提供程序可以幫助您自動執行第二步?因此,您的服務器可以聯繫提供商並生成新的消費者密碼,該密碼以某種方式與您的應用鏈接,但仍然是唯一的?或者還有其他可行的方法嗎?

+0

這仍然是最好的建議,混淆密鑰?不過,我們不要稱這種安全性,好嗎? WordPress最終做了什麼? – 2011-02-28 19:56:13

+0

@DSBlank:沒有官方的WordPress解決方案,因爲這是由外部開發人員開發的插件處理的。所以可能有多種實現使用不同的策略。我相信[第二版OAuth不需要祕密消費者密鑰](http://hueniverse.com/2010/05/introducing-oauth-2-0/),但我不確定這一點。 – 2011-02-28 20:06:53

回答

1

第三個選項是託管一個Web應用程序,該應用程序充當您正在使用的任何OAuth服務的代理。所有的API密鑰都在您的服務器上受控制。缺點是你需要花錢保持機器運行。作爲獎勵,您可以收集關於您的插件使用情況的一些分析。

如果您認爲您的用戶足夠技術性地生成自己的API密鑰,則可以使用選項二。我已經實現了這種方法,並且支持很痛苦。

我不推薦第一種方法,因爲人們可能會盜取您的OAuth密鑰並假裝成您的應用程序。一旦你的API密鑰氾濫,該服務將阻止你的API密鑰,你的插件將停止工作。然後你會爭先恐後地嘗試升級一堆你再也無法控制的代碼。

相關問題