2010-09-01 33 views
3

如何在FLOSS应用程序中使用oauth,我们无法保留密钥?如果其他人看到秘密和密钥,他不能使用它来使用用户帐户,就好像他在哪里我一样?如何在FLOSS应用程序中使用oauth,我们无法保存密钥?

+0

你是什么意思,“不能保密钥匙”? “没有可靠的地方来存储它”?你在谈论哪个“其他”? – Piskvor 2010-09-01 12:15:06

+0

@piskvor:如果它是开源的,它如何隐藏密钥?你可以像应用程序一样检索它。 “其他”是指未经授权的第三方。 有人可以拿起应用程序密钥,并用它来模拟应用程序并获取用户的数据? – 2010-09-01 12:19:30

+0

“开源”是一种授权方式,意思是“如果您进一步__distributing__该程序,您必须将源代码传递给收件人”而不是“如果您正在使用该程序,则必须允许任何人查看您的源代码,因为它在你的服务器上“。只要你不分发它,你就不必向任何人提供/显示源代码。 – Piskvor 2010-09-01 12:23:37

回答

5

我在自己的开源Twitter应用程序中处理了这个问题。

您不要使用您的源代码分发ConsumerKey或ConsumerKeySecret。一个合理的方法是创建两个常量/全局变量(或其他)来保存这些值,并且这些值在您发布的源代码中为EMPTY。包含一些向其他开发人员解释如何获取自己的密钥以及如何修改源以安装它们的文档。

如果您正在分发已编译的二进制文件,则可以使用ConsumerKey和ConsumerKeySecret值进行编译,以便应用程序运行。

没有完美的安全方式来处理这个问题;这是OAuth的本质。但是,你可以 - 合理 - 安全的,这就是这种方法实现的。

相关问题