2011-10-12 53 views
0

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

你用什么技术自动登录用户?我宁愿不必复制HTML表单并通过javascript提交。如果表单发生变化,这似乎很容易出错。我试图将登录表单放入iframe中,但似乎网站的所有者能够阻止此操作(请参阅附加的屏幕截图)。你知道他们是怎么做到的吗?其次,您如何保存证书以保证证书“安全”,您的方法是什么?

...彼得

enter image description here

+2

为什么你要做到这一点,出于好奇? – Maxpm

+0

@MaxPM我们的用户有许多付费的,与商业相关的网站,他们需要登录(不只是Twitter)。作为该项目的一部分,他们要求我们创建一个穷人的SSO,以便他们不必一直登录那些人。我们知道这有安全和维护的含义......我们想看看其他网站如何解决问题 –

回答

2

我会建议使用Cookie来保存会话证书到用户的机器。这样一个cookie的价值很大;

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

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

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

然后您需要检查时间戳并决定这是否是允许访问的“新”足够的证书。

这是标准方法。

+0

其他网站如何检查cookie? Cookie基于每个域(或更窄)设置,并且这些站点是“外部”的。 – Quentin

+0

登录后,向每个外部网站回送一系列不可见的iframe。这可能是集中的,所以你不需要维护单独的列表。 iframe请求将包含带有凭证的GET变量,然后外部网站可以作为cookie回显。 – lynks

0

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

+0

其他网站如何检查cookie? Cookie基于每个域(或更窄)设置,并且这些站点是“外部”的。 – Quentin

+0

没有其他网站可以用Javascript获取cookie(除非存在安全问题)。例如。如果您处于未加密的wlan中,则每个人都可以读取所有流量(如果未加密,例如:https)。形成这种交通攻击者可以提取他需要的一切。 – styrr

+1

这就是我的观点。我的网站无法设置Cookie来将某个人登录到您的网站。 – Quentin

2

不要这样做。阅读服务条款为每个站点(即脸谱):

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/

+0

我不得不同意stevether,你可能不得不与Facebook臭名昭着的记录不完善的API战斗,但这绝对是一个更安全的方法(合法和安全方面)。如果你的雇主仍然坚持这样做,我会建议找到一个更有信誉的雇主。 – k4t434sis

+0

感谢您的反馈...请注意,我们不会将用户登录到典型的面向用户的网站,例如Facebook或Twitter。我们将把他们登录到可能(或可能不)更愿意让我们这样做的与商业相关的网站。一旦我们发现技术上可行的最低维护/诡计,我们将评估这一方面。 –