插件中的OAuth消费者密钥

问题描述:

处理将作为/作为源代码(例如,访问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

第三个选项是托管一个Web应用程序,该应用程序充当您正在使用的任何OAuth服务的代理。所有的API密钥都在您的服务器上受控制。缺点是你需要花钱保持机器运行。作为奖励,您可以收集关于您的插件使用情况的一些分析。

如果您认为您的用户足够技术性地生成自己的API密钥,则可以使用选项二。我已经实现了这种方法,并且支持很痛苦。

我不推荐第一种方法,因为人们可能会盗取您的OAuth密钥并假装成您的应用程序。一旦你的API密钥泛滥,该服务将阻止你的API密钥,你的插件将停止工作。然后你会争先恐后地尝试升级一堆你再也无法控制的代码。