如何在无法保存密钥的 FLOSS 应用程序中使用 oauth?
如何在无法保存密钥的 FLOSS 应用程序中使用 oauth?如果其他人看到了秘密和密钥,他不能用它来使用用户帐户,就像他在我那里一样吗?
How does one use oauth in a FLOSS app where we can't keep a secret key? If other see the secret and the key, can't he use it to use the user account as if he where me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我已经在我自己的开源 Twitter 应用程序中处理了这个问题。
您不会随源代码一起分发 ConsumerKey 或 ConsumerKeySecret。合理的方法是创建两个常量/全局变量(或其他变量)来保存这些值,并且这些值在您发布的源中是空的。包括一些文档,向其他开发人员解释如何获取自己的密钥以及如何修改源来安装它们。
如果您要分发已编译的二进制文件,则需要使用填充的 ConsumerKey 和 ConsumerKeySecret 值进行编译,以便应用程序运行。
没有完全安全的方法来处理这个问题;这是 OAuth 的本质。然而,您可以相当安全,这就是此方法所实现的目标。
I have dealt with the issue in my own open source Twitter apps.
You do NOT distribute the ConsumerKey or ConsumerKeySecret with your source code. A reasonable approach is to create two constants/global variables (or whatever) that hold these values, and these are EMPTY in the source that you publish. Include some documentation that explains to other developers how to acquire their own keys and how to modify the source to install them.
If you are distributing compiled binaries, you would compile with the ConsumerKey and ConsumerKeySecret values populated so the application runs.
There is no -perfectly secure- way to handle this; it's the nature of OAuth. You can, however, be -reasonably- secure, and that's what this approach achieves.