关于一级域名相同的两个系统单点登录问题

哎哎哎哎啊 发布于 2013/06/26 12:21
阅读 755
收藏 1

    在两台机子上部署了两个系统,一个域名www.xx.com,另一个为forum.xx.com,现在实现单点登录功能,因为两个系统的一级域名都是xx.com,所以准备用filter+Cookie的方式来实现单点登录,具体的做法如下:

登录入口在www.xx.com所在的系统,登录成功后保存一个域为xx.com,值为登录名的cookie,当进入forum.xx.com,在过滤器中首先判断session中是否有信息,没有的话从cookie中获取登录名信息,存入到session中,这样forum.xx.com就不用登录

但是这样有个问题,在www.xx.com中登录保存的这个cookie,是会话cookie,存在浏览器内存中的,只要浏览器不关闭的话一直都存在。假如www.xx.com中的session过期,这时候进入forum.xx.com系统,通过过滤器操作,forum.xx.com表现的还是登录状态,也就是说只要不关闭浏览器,在www.xx.com中登录一次后,forum.xx.com永远都是登录状态,请问一下,这种做法可不可取,在安全性方面怎样,对于这种一级域名相同的两个系统,解决单点登录还有没有其他的解决办法,是不是如果要安全的话还是必须使用传统单点登录解决方案(使用单点登录框架)来做?

加载中
0
tidezyc
tidezyc
forum拿到cookie是要到www去验证其有效性的,不然就可以伪造,所以保证验证的唯一性就可以做到基本的安全性
0
哎哎哎哎啊
哎哎哎哎啊

引用来自“johnny_潮”的答案

forum拿到cookie是要到www去验证其有效性的,不然就可以伪造,所以保证验证的唯一性就可以做到基本的安全性
到www去验证?怎么个验证法,验证什么?
tidezyc
tidezyc
回复 @tianhandigeng1498 : 我在浏览器手动伪造一个登录名的cookie,然后进入forum,是不是就可以进去了
哎哎哎哎啊
哎哎哎哎啊
回复 @johnny_潮 : 可能我没说清楚,登录入口只在www中,只有forum才有判断cookie的过滤器,上面的问题是,在www中登录生成cookie,在forum中就不用登录了,要去www中验证cookie的有效性,怎么验证,验证什么呢?
tidezyc
tidezyc
在forum直接伪造个cookie不是就可以登入系统了,连用户名和密码都不需要了
0
tidezyc
tidezyc

引用来自“tianhandigeng1498”的答案

引用来自“johnny_潮”的答案

forum拿到cookie是要到www去验证其有效性的,不然就可以伪造,所以保证验证的唯一性就可以做到基本的安全性
到www去验证?怎么个验证法,验证什么?
提供了简单的思路,存的cookie除了登录名,再加上时间戳(加上IP绑定就更完美了),按一定编码组合加密,forum获取cookie之间就可以知道这个cookie是不是过期了,过期就跳回www,否则后台通过http请求去www验证这个cookie是不是存在,验证成功之后还可以带回一些不好存cookie的参数,如权限什么的。基本思路就是这样
0
光石头
光石头
http://www.9iu.org/2011/11/25/tomcat-memcached-session-sso.html
0
pantrick
pantrick

sso 的原理利用cookie存储只是sso实现的一部分,经典的sso必须有个ticket,存在于cookie中,你必须每次登陆是,首先从cookie取得这个ticket,然后再去服务器验证这个ticket才准许登陆,否则,光cookie非常不保险,上面几位说的很明白了!

  

返回顶部
顶部