主页 > 资料 > 关于web真个单点登录实际

关于web真个单点登录实际

2020-04-02 04:48:31 作者:admin   |   浏览(143)

  后果:

  假定现在有4个域名,www.a.com,www.b.com,www.c.com,www.d.com,在a.com这个域内登录了,不种其他3个域名的cookie,假设用户输入其他的三个域的时分,也能保证用户在不输入用户名和暗码的时分也能登录

  说在前面的话:

  1)在web端登录和未登录:使特定的cookie的值掉效/掉效,这个特定,就是你所制订的规矩。

  2)后果的关键:若何取得cookie的值,就取得了帐号的通行证,便可以登录了,然后就是做你想做的工作了。比如修改,删除资料,修改暗码,做你想做的任何工作,总之,你控制了这个帐号了。

  剖析:

  1)在www.a.com 这域名下登录,我们可以将cookie设置在a.com这顶级域名上,假设这个域的子域,比如1.a.com,2.a.com都能取到这个域的cookie的,都能登录,不存在不能登录

  2)在a.com这个域名下登录了,若何在b.com,c.com,d.com这个域名下取得a.com的cookie的值,只需取得a.com这个域下的该用户的cookie的值便可以了。

  若何取得cookie呢?我们做了以下思考:

  1.跨域取cookie,这个是平安的吗?refer可以捏造吗,有那些方法?

  2.跨域恳求可否能取得header的内容?

  3.跨域post提交(iframe+post)可否能取得iframe外面的内容?

  现在我们看看下面3个后果:

  1.跨域,我们这里思考,采取loadJsonp的方法,这个是平安的吗,loadjsonp对外都是静态的,我们可以看,他人也能够看,分歧的是我电脑和浏览器的形状,基于这个思考,我们限制了referrer,即起源,

  这个可以盖住一局部,然则这个是可以捏造吗?查阅了相干资料,前端没有方法捏造,然则可认为空,在这个后果上,我们限制了referrer不为空,而且在我们的白名单外面便可以了。

  2.可否能取得header的内容,我们知道loadJsonp是经过创立script标签来获得数据的,因此必然不能取得header头信息的,ajax是可以的,只需设置 type: 'HEAD', 便可以取得头信息,然则ajax是不能跨域的,

  因为我们清除跨域取得header的能够性

  3.因为平安沙箱的限制,iframe外面假设不是本域的内容,必然不能获得掉掉落。

  基于以上思考,我们就采取了loadjsonp+限制referrer的方法来跨域取得cookie,获得cookie后,我们就往本域的根目次写入,然后便可以在本域内完成登录。而不触及到其他域的cookie后果。

  计划实施:

  计划1:供给通用js, 经过设置基准域名cookie(例如www.a.com), 其它营业均从基准域名获得cookie的方法,来获得登录形状。

  登录时设置两个基准域和以后域下的cookie,其它营业需求时再拉取基准域名cookie来设置自身cookie。