我想将用户的凭证安全地保存到相关网站,并在登录到我们的网站时自动将其登录到这些网站。我明白这有一些安全隐患,所以我希望其他人的反馈,并看看过去对其他人的成功。自动登录用户到外部网站?
你用什么技术自动登录用户?我宁愿不必复制HTML表单并通过javascript提交。如果表单发生变化,这似乎很容易出错。我试图将登录表单放入iframe中,但似乎网站的所有者能够阻止此操作(请参阅附加的屏幕截图)。你知道他们是怎么做到的吗?其次,您如何保存证书以保证证书“安全”,您的方法是什么?
...彼得
我想将用户的凭证安全地保存到相关网站,并在登录到我们的网站时自动将其登录到这些网站。我明白这有一些安全隐患,所以我希望其他人的反馈,并看看过去对其他人的成功。自动登录用户到外部网站?
你用什么技术自动登录用户?我宁愿不必复制HTML表单并通过javascript提交。如果表单发生变化,这似乎很容易出错。我试图将登录表单放入iframe中,但似乎网站的所有者能够阻止此操作(请参阅附加的屏幕截图)。你知道他们是怎么做到的吗?其次,您如何保存证书以保证证书“安全”,您的方法是什么?
...彼得
我会建议使用Cookie来保存会话证书到用户的机器。这样一个cookie的价值很大;
用户ID,时间戳,哈希(用户ID。时间戳。global_secret)
需要很长(40个字符左右),以避免人们破解哈希,因为这样做global_secret的价值将允许他们与其他人的用户ID创建自己的凭据!
的“其他网站”会检查这个cookie,使用用户ID,时间戳的明文值和global_secret(所有网站知道)计算散列,检查对所提供的哈希值,如果他们匹配,那么这是一个有效的证书。
然后您需要检查时间戳并决定这是否是允许访问的“新”足够的证书。
这是标准方法。
自动登录用户的常用方法是使用随机字符串设置cookie。它必须是随机字符串是不可猜测的。在服务器上检查cookie,如果匹配,则登录该用户。但是,如果你的网站没有完全服务于https,那么每个可以听流量的人都可以假装成用户。为了增加安全性,你可以实现一个随机字符串只对查看日有效,然后用户必须再次登录并生成一个新的随机字符串。因此,如果有人窃取cookie-id,攻击者只能在一定时间内访问该帐户。
不要这样做。阅读服务条款为每个站点(即脸谱):
https://www.facebook.com/terms.php?ref=pf
(3.2),你会不会收集用户的内容或信息,或以其他方式访问Facebook,采用自动化手段(如作为收获机器人,机器人,蜘蛛或刮板)未经我们许可。
(3。5)您不会要求登录信息或访问属于他人的帐户。 (4.8)您不会分享您的密码(或开发人员,您的密钥),让其他人访问您的帐户,或做任何其他可能危及您帐户安全的事情。
你让自己和用户处于危险之中。
这些网站有一个API的原因,所以我建议你使用这些作为一个更“合法”的方法。
所以,如果你想获取Facebook用户的信息,创建一个应用程序,让他们授权你的应用程序,然后通过Facebook的api(example)检索信息。 你也可以使用这种方法张贴到他们的墙上。
我不得不同意stevether,你可能不得不与Facebook臭名昭着的记录不完善的API战斗,但这绝对是一个更安全的方法(合法和安全方面)。如果你的雇主仍然坚持这样做,我会建议找到一个更有信誉的雇主。 – k4t434sis
感谢您的反馈...请注意,我们不会将用户登录到典型的面向用户的网站,例如Facebook或Twitter。我们将把他们登录到可能(或可能不)更愿意让我们这样做的与商业相关的网站。一旦我们发现技术上可行的最低维护/诡计,我们将评估这一方面。 –
为什么你要做到这一点,出于好奇? – Maxpm
@MaxPM我们的用户有许多付费的,与商业相关的网站,他们需要登录(不只是Twitter)。作为该项目的一部分,他们要求我们创建一个穷人的SSO,以便他们不必一直登录那些人。我们知道这有安全和维护的含义......我们想看看其他网站如何解决问题 –