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

Javascript 自动将用户登录到外部网站?,javascript,jquery,html,Javascript,Jquery,Html,我希望安全地将用户的凭据保存到相关网站,并在用户登录到我们的网站时自动将其登录到这些网站。我知道这会带来一些安全隐患,所以我想听听其他人的反馈,看看过去有什么成功的地方 您使用了什么技术自动登录用户?我不希望复制HTML表单并通过javascript提交。如果表单发生更改,这似乎很容易出错。我试着把登录表单放在一个iframe中,但似乎网站的所有者能够阻止它(见附件屏幕截图)。你知道他们是怎么做到的吗 其次,您是如何保存凭据以使其“安全”的 …彼得 我建议使用cookies将会话证书保存到用户计

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

您使用了什么技术自动登录用户?我不希望复制HTML表单并通过javascript提交。如果表单发生更改,这似乎很容易出错。我试着把登录表单放在一个iframe中,但似乎网站的所有者能够阻止它(见附件屏幕截图)。你知道他们是怎么做到的吗

其次,您是如何保存凭据以使其“安全”的

…彼得


我建议使用cookies将会话证书保存到用户计算机。这类饼干的良好价值是:

用户标识、时间戳、哈希(userid.timestamp.global\u secret)

global\u secret的值需要非常长(40个字符左右),以避免人们破解散列,因为这样做将允许他们使用其他人的用户ID创建自己的凭据

“其他站点”将检查此cookie,使用useridtimestampglobal_secret(所有站点都知道)的明文值计算哈希值,根据提供的哈希值进行检查,如果它们匹配,则这是有效的证书

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


这是标准方法。

我建议使用cookies将会话证书保存到用户计算机。这类饼干的良好价值是:

用户标识、时间戳、哈希(userid.timestamp.global\u secret)

global\u secret的值需要非常长(40个字符左右),以避免人们破解散列,因为这样做将允许他们使用其他人的用户ID创建自己的凭据

“其他站点”将检查此cookie,使用useridtimestampglobal_secret(所有站点都知道)的明文值计算哈希值,根据提供的哈希值进行检查,如果它们匹配,则这是有效的证书

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


这是标准方法。

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

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

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

(3.2)未经我们允许,您不得使用自动方式收集用户的内容或信息,或以其他方式访问Facebook

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

(4.8)您将不会共享您的密码(如果是开发人员,则为您的密钥),不允许任何其他人访问您的帐户,也不会做任何可能危及您帐户安全的事情

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

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

因此,如果您试图检索facebook用户的信息,请创建一个应用程序,让他们授权您的应用程序,然后通过facebook的api()检索信息。你也可以用这种方法贴到他们的墙上


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

(3.2)未经我们允许,您不得使用自动方式收集用户的内容或信息,或以其他方式访问Facebook

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

(4.8)您将不会共享您的密码(如果是开发人员,则为您的密钥),不允许任何其他人访问您的帐户,也不会做任何可能危及您帐户安全的事情

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

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

因此,如果您试图检索facebook用户的信息,请创建一个应用程序,让他们授权您的应用程序,然后通过facebook的api()检索信息。你也可以用这种方法贴到他们的墙上


出于好奇,你为什么要这么做