免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6255 | 回复: 21
打印 上一主题 下一主题

请教跨域名进行用户的cookie验证?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-11-21 09:05 |只看该作者 |倒序浏览
永远的uinx中《实现跨域名Cookie》一文http://www.fanqiang.com/a4/b4/20020327/060201159.html 介绍,没有看懂,他强调如何两个域名之间传递sessionid,最后用url的方式实现了上面的目的。但是用户验证哪?如何实现用户的验证?
其实只要两个域名是同一台主机的话,可以用函数session_id来知道用户的session_id
我怎么也想不明白,依靠session_id,某用户在某域名登陆后,拥有了自己的cookie,记录了自己的session_id,但是,用户在访问另一个域名时,就算主机已经知道用户的session_id,但是仍然不能判断用户是否已经登录过?

其实关键问题在于:
如果另一域名通过接收用户的session_id来重写用户cookie的话,如何知道用户的用户名?
如果用户已经注销了,但是浏览器不关的话,session_id还是存在的,另一个域名会不会仍然重写cookie,将其认定为登录用户呢?


  Posted:2003/11/20 22:35           
--------------------------------------------------------------------------------
我是这个意思:
我们同一台机器上有好几个域名,我想实现他们统一的用户登录,用户登录后建立cookie,然后用户访问其他域名的时候,希望也能通过验证。

看那一篇文章,作者好像只提到如何共享sessionid,没有提到如何跨域名写cookie

因为在同一台主机上,用户用一个浏览器访问这台机器的不同域名,都是用的同一个sessionid,这个sessionid从用户第一次访问时产生,用户访问本站的不同域名时,sessionid还是不变,直到用户关掉所有本站的窗口时,sessionid才消失。

这个sessionid和用户有没有在某域名登录过、有没有验证通过建立过cookie都没有关系

所以我看不懂那篇被转载n个网站的文章

论坛徽章:
0
2 [报告]
发表于 2003-11-21 09:52 |只看该作者

请教跨域名进行用户的cookie验证??

据我所知用同一个cookie名然后读取cookie里的变量即可

论坛徽章:
0
3 [报告]
发表于 2003-11-21 09:55 |只看该作者

请教跨域名进行用户的cookie验证??

哈哈,困扰好几天的问题已经解决,被www.phpx.com的冬冬(http://www.phpx.com/happy/member.php?s=&action=getinfo&userid=15915)一语点破。

http://www.phpx.com/happy/showthread.php?s=&postid=378895#post378895
dulao5
一般会员
注册日期: Feb 2003
  跨域名进行用户的cookie验证:???  
              ………………………………
冬冬版主
注册日期: Aug 2002
来自: china,beijing
发帖数: 7785
   把session存数据库里


dulao5一般会员
注册日期: Feb 2003
  冬冬你好…………棒……!!……

我终于想通了,设计一个表session( sid , d_time ,userid ,flag )
然后当每次php动作时,都检查sessionid是否在表中存在,
不存在则添加(在用户第一次请求网站时,该记录被添加)
用户登录时,根据sessionid将userid和flag置为有效值
用户未登录,则sessionid对应的userid和flag为空和false
用户注销,则将flag=false
用户登录后访问其他域名时,验证userid和flag
这样,只用session不用cookie就行了!

哈哈,冬冬,久闻大名,果然是高手,佩服佩服,这个问题我想了好几天了都不行,被你一下点破了……

论坛徽章:
0
4 [报告]
发表于 2003-11-21 10:10 |只看该作者

请教跨域名进行用户的cookie验证??

多谢rainyblue 回复,我在win2000+iis上测试多站点保存同名的cookie,是不能互相访问的。uinx上没有试过(其实我是为php而来问问题的,uinx不懂嘿嘿)

不过有个疑问:现在虚拟空间都是在同一主机有多个虚拟空间用户,他们如果用同样的cookie验证,如果uinx安全性不好,岂不是很大的漏洞?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-11-21 10:13 |只看该作者

请教跨域名进行用户的cookie验证??

你实现了吗?
通过session_set_save_handler()把session放到数据库里,提取session内容还是根据session_id来查的,而session_id的传递仍然是依赖于cookie,不然你试试看这个:

  1. <?php
  2. // filenname:test.php
  3. session_start();
  4. echo session_id();
  5. ?>;
复制代码

上传到两个不同的地方,看看打印的session_id是否一样,既然session_id都不一样了,程序拿什么去找到session表里正确的数据?
绕来绕去,还是得搞定cookie

论坛徽章:
0
6 [报告]
发表于 2003-11-21 10:19 |只看该作者

请教跨域名进行用户的cookie验证??

我在win+iis上测试,session_id是一样的,难道linux不一样吗??那就坏了,我赶紧到服务器上试试去,多谢老兄提醒,谢谢

论坛徽章:
0
7 [报告]
发表于 2003-11-21 10:27 |只看该作者

请教跨域名进行用户的cookie验证??

我哭啊

原来想绕过cookie,光搞定session就行了,就是基于域名不同主机相同所以session_id相同的想法,刚才在linux上试试,果然我的基础都不成立,完了完了,空高兴一场,我刚才快马加鞭,在win+iis上都快做完了,55555555

多谢楼上老兄提醒,请问有神么好办发啊???

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
8 [报告]
发表于 2003-11-21 10:53 |只看该作者

请教跨域名进行用户的cookie验证??

我也关心了一下,看到这样一种说法:
-----------------------------------------------------------
SSO是门户的基础,我们公司现在正在筹备这方面的项目

原本是打算自己做,后来和BEA和SUN做过技术交流以后,决定用SUN的SUN ONE SERVER来做

其实SSO的基本原理很简单,我们在考虑自己实现的时候,遇到一些技术难题,后来和BEA、SUN做过交流后才证实了我们的一些想法:

SSO最简单,最直接的实现方法是基于COOKIE,性能最高
基于COOKIE最大的难点在于跨域
SSO的核心在于统一用户认证,而这个从实现层面上就可以看作一个认证服务器,也真是SUN公司所推崇的IDENTITY SERVER,所以的登录、认证请求都在这里完成,然后分发到相应应用
而他们解决COOKIE跨域的方法也是基于这个IDENTITY SERVER的,用户登陆后可以在各个他所访问的域内写COOKIE,而这些COOKIE都是IDENTITY SERVER所可以认证的,由此做到松散的集群制。

如果大家有兴趣自己实现,也可以基于这个实现,无非是在COOKIE中建立只有自己的IDENTITY SERVER可认证的串,通过重定向方式到IDENTITY SERVER验证,然后返回认证结果,操作功能,由于COOKIE内容的一致性致使跨域成为可能

当然SUN所做的远比我说说的复杂,比如每个认证的域都需安装它所提供的认证软件等等,不过基本实现就是这样的

SSO现在是做企业应用的基础,大的运营商在理性化建设的基础上都想整合原有应用,所以门户是他们最关心的,而SSO是第一步

希望大家批评指正
-----------------------------------------------------------

简单来说就是建立一个所有域都可以任意读的cookie,然后在cookie内容加密和格式上做文章

论坛徽章:
0
9 [报告]
发表于 2003-11-21 10:56 |只看该作者

请教跨域名进行用户的cookie验证??

你说的,我看很像微软的passport,他也是利用专门的服务器给其他网站提供认证服务。个人觉得这么做就太…………大了


//不过也许没有我想的那么难,我仔细想想再说,谢谢夜猫子兄

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
10 [报告]
发表于 2003-11-21 11:14 |只看该作者

请教跨域名进行用户的cookie验证??

所谓IDENTITY SERVER,可大可小,简单点无非就是类似你前边所说的session table,然后建立专门的程序来读写,麻烦的是cookie加密和格式等规则的建立
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP