前一段时间我问了similar question here但是所有的答案都提供了OpenID,这很好但是它不适用于那些需要不使用身份验证的服务(例如EventBrite)。
说我想创建一个应用程序,列出事件brite中的事件及其分析(包括eventbrite)。任何人都可以注册此服务以列出他们的活动。但由于EventBrite没有OpenID进行身份验证,我需要以某种方式获取用户登录和密码到EventBrite。
一些可能的解决方案是:
这个假设的服务也想自动检查事件(比如通过cron),所以它不依赖于用户通过浏览器访问我的网站。因此,cookie或信用证需要存储在某个地方。
问题是,after asking this similar question about confidentiality and security听起来你应该从不构建一个能够完成我所描述的应用程序。必须有某种方式来构建这样的东西是可以的。
那是什么意思?我错过了什么?是否可以使用#3并保存cookie(但仍然需要用户通过我发送给Eventbrite的表单提交他们的电子邮件/密码)?该问题的可接受解决方案是什么?答案 0 :(得分:1)
没有一种安全的方法可以做到这一点。你可以使用变通办法,但就是这样。
根据您的情况,存储cookie是一种更好的方法。始终在您的网站上使用HTTPS。它不太理想,你和你的用户应该知道它。
答案 1 :(得分:1)
Eventbrite最近发布了描述how to implement OAuth2.0 for cross-site user authentication的新文档。 我建议使用我们的javascipt-based OAuth2.0 widget,它默认在浏览器的localStorage中存储用户的身份验证令牌。 由于auth令牌存储在用户的浏览器中,并且无法被其他域访问,因此不太可能存在任何安全漏洞。
在此身份验证方案中完全避免了对电子邮件和密码组合的需求。
答案 2 :(得分:0)
大多数网站仅支持使用原始明文密码直接登录,因此您必须获取,存储和提供该密码。而且我永远不会相信你。 您的概念的问题是您需要将密码提供给第三方。解决方案不涉及第三方,例如我的浏览器非常擅长自动存储和填写密码(我的硬盘驱动器也受密码保护)。它们也是许多其他密码钱包应用程序。订阅时,我不会通过您的服务获得任何收益。
在开展此类业务之前,请考虑您将成为第一目标。 Facebook,谷歌对安全性非常偏执,花费大量时间,金钱和精力来保持登录安全。你有相同的资源吗?那你就是一个更好的目标。此外,通过黑客攻击您的服务,他们会立即获得多个帐户,用户密码,还可以查看谁总是重复使用其密码。
答案 3 :(得分:0)
对于使用Eventbrite API,我建议确保所有连接都通过SSL,并使用user_key而不是用户名和密码进行身份验证。
有关Eventbrite API身份验证的详细信息,请访问:http://developer.eventbrite.com/doc/auth/
登录后,用户可以在此处找到他们的user_key:http://www.eventbrite.com/userkeyapi
这样可以防止通过网络拦截用户名和密码信息,或者从本地数据存储中读取信息。