自动登录用户到外部网站?

时间:2011-10-12 20:51:26

标签: javascript jquery html

我想将用户的凭据安全地保存到相关网站,并在登录我们的网站时自动将其登录到这些网站。我理解这有一些安全隐患,所以我希望别人的反馈,看看过去其他人的成功。

您使用了哪些技术来自动记录用户?我不想复制HTML表单并通过javascript提交。如果表单发生变化,这似乎容易出错。我尝试将登录表单放在iframe中,但似乎网站的所有者能够阻止此操作(请参阅随附的屏幕截图)。你知道他们是怎么做到的吗?

其次,您保存凭据以使其“安全”的方法是什么。

...彼得

enter image description here

3 个答案:

答案 0 :(得分:2)

我建议使用Cookie将会话证书保存到用户计算机。这种cookie的一个好价值是;

用户ID,时间戳,哈希(用户ID。时间戳.global_secret)

global_secret 的值需要很长(大约40个字符),以避免人们破解哈希,因为这样做会允许他们与其他人的用户ID一起创建自己的凭据!

“其他网站”会检查此Cookie,使用用户ID 时间戳 global_secret 的明文值计算哈希值(所有网站都知道),根据提供的哈希检查,如果匹配,那么这是一个有效的证书。

然后,您需要检查时间戳并确定这是否是一个允许访问的“新”证书。

这是标准方法。

答案 1 :(得分:2)

不要这样做。阅读每个网站(即facebook)的服务条款:

https://www.facebook.com/terms.php?ref=pf

  

(3.2)未经我们许可,您不会使用自动方式(例如收获机器人,机器人,蜘蛛或刮刀)收集用户的内容或信息,或访问Facebook。

     

(3.5)您不会征求登录信息或访问属于他人的帐户

     

(4.8)您不会分享您的密码(或者在开发者的情况下,您的密钥),让任何其他人访问您的帐户,或做任何可能危及其安全的事情你的帐户。

您将自己和用户置于危险之中。

这些网站有一个API是有原因的,所以我建议您使用这些作为更“合法”的方法。

因此,如果您正在尝试检索Facebook用户的信息,请创建一个应用,让他们授权您的应用,然后通过Facebook的api(example)检索信息。 您也可以使用此方法发布到他们的墙上。

https://developers.facebook.com/

https://dev.twitter.com/

https://developers.google.com/

答案 2 :(得分:0)

自动登录用户的常用方法是使用随机字符串设置cookie。必须是随机字符串是不可猜测的。在服务器上检查cookie,如果匹配,则登录用户。但是,如果您的网站没有完全通过https提供服务,那么每个可以收听流量的人都可以假装成用户。为了提高安全性,您可以实现随机字符串仅在视图日有效,然后用户必须再次登录并生成新的随机字符串。因此,如果有人窃取了cookie-id,攻击者只能在一定时间内访问该帐户。