子域和父域怎么存cookie 父域才可调用

关于cookie的一些测试和跨域问题 - chunchunlike - 博客园
关于cookie的测试。&
概述 分浏览器 IE6,IE8,Chrome,FireFox分别测试
测试1 cookie总数量限制,超过数量限制的cookie如何处理
测试2 cookie总长度限制
测试3 单条cookie长度测试
测试4 子cookie长度限制
测试用的各浏览器版本
IE6版本6.0.
IE8版本8.0.
Chrome版本14.0.835.15,Chrome取得cookie速度较慢,测试时注意
FireFox版本6.0.2
cookie总数量测试
1 IE6 最多设置20个cookie,后设置的会把前面设置的冲掉
2 IE8 最多设置50个cookie,后设置的会把前面设置的冲掉
3 Chrome最多设置160个左右,个数不定,后设置的会把前面设置的冲掉
4 FireFox最多设置150,后设置的会把前面设置的冲掉
cookie总长度测试
1 IE6 最大4078
2 IE8 最大10198
3 Chrome 大于80000
4 FireFox 大于80000
单条cookie长度测试
1 IE6 在4000左右
2 IE8 在5000左右
3 Chrome 在4000左右
4 FireFox 在4000左右
子cookie长度测试 (子cookie实际是在cookie里面拼字符串,上面单条cookie长度的测试对子cookie仍适用)
1 IE6 一条cookie可以设置几百个子cookie,子cookie总和长4000左右
2 IE8 一条cookie可以设置几百个子cookie,子cookie总和长4000左右
3 Chrome 一条cookie可以设置几百个子cookie,子cookie总和长4000左右
4 FireFox 一条cookie可以设置几百个子cookie,子cookie总和长4000左右
1 a.com ,b.com 。 跨域设置、获取均得不到cookie
2 子域可以读取、设置父域的cookie。
& &比如:newhouse.a.com 可以读取 设置 a.com的cookie信息
3 子域与子域之间不能读取设置。
4 子域,父域cookie的个数 在ie6下分别是20个 不会冲突。
跨域读取赋值 cookie可以考虑服务端读取赋值,传回到客户端。
主要原因是:script标签是可以跨域的。
XmlHttpRequest 触发的get post均不能跨域。&
可以由src="图片路径",触发get请求, 跨域亦可。
post跨域 :部分浏览器XmlDomainRequest可以,还有其他方法,待补充。浏览器的同源策略以及cookie
同源策略是众多安全策略中的一个。是web层面的策略。
同源策略规定:不同域的客户端脚本在没有明确授权的情况下,不能读写对方的资源。
&注意,同源的话,一定是同协议,同域名,同端口,只要其中一个条件不满足就是不同源的。
& & &资源不仅
包括web页面,也包括cookie。http消息头,dom树等 不同源的话是不能读对方的cookie的。
CSRF:跨站请求伪造,
XSS:跨站脚本攻击
APT:持久化威胁、
cookie的重要字段[name][value][domain][path][expires][httponly][secure]
name,value字段一般会设置sessionID字段
domain字段可以设置为父域的domain,这样可以实现子域的cookie共享。这个时候子域是可以读到cookie的
(关于这一点又个疑问,有时间可以尝试下,cookie共享是如何实现的,是所有的子域都设置,还是说只要一个子域设置就可以了,个人感觉根据同源策略应该是当所有的子域都设置成父域的值时才能实现cookie共享)。
本地cookie与内存cookie
没有设置过期时间的cookie就是内存cookie,内存cookie会随着浏览器的关闭而从内存中消失。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。[Web_Cookie]共同父域下的单点登录
时间: 12:11:12
&&&& 阅读:559
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&单点登录(Single Sign On),简称为SSO,SSO不仅在企业级开发很常用,在互联网中更是大行其道。随便举几个例子,比如我们登录新浪微博后,再访问新浪首页后,我们发现,已经自动登录了;再比如我们登录CSDN后,可以写博客、逛论坛、下载资源等等。前者是完全跨域的单点登录,下文会讲,后者是共同父域下(www.csdn.net、blog.csdn.net、bbs.csdn.net、passport.csdn.net)的单点登录,也就是本文的主要内容。& & & &单点登录实际上是&身份认证&的整合,当我们存在多个应用时,我们希望登录了其中的一个应用,再访问其他应用时,会自动登录,避免用户重复的体力劳动。单点登录的实现原理是比较简单的,如下图所示,当用户通过浏览器第一次访问应用系统1时,由于还没有登录,会被引导到认证系统进行登录。下面开始单点登录的过程:认证系统根据用户在浏览器中输入的登录信息,进行身份认证,如果认证通过,返回给浏览器一个证明ticket(票);用户再访问其它应用系统时,会带着ticket;应用系统接收到ticket后,会将其发送到认证系统进行合法性校验;校验通过后,用户就不需要再次输入用户名密码来登录了,从而实现了单点登录的功能。
& & & &上面描述的过程实际上是WEB-SSO。要实现SSO,首先必须要有统一的认证系统,其次每个应用系统都通过认证系统来校验用户,所以这需要两方面的配合。WEB-SSO是比较好实现的,尤其是共同父域的情况下,我们可以通过浏览器的cookie来保存ticket。今天我用Servlet技术实现了SSO的主要功能,可以在下载项目。
& & & &修改hosts文件,映射3个域名:
127.0.0.1&web1.ghsau.com&&
127.0.0.1&web2.ghsau.com&&
127.0.0.1&passport.ghsau.com&&
& & & &3个域名必须拥有共同父域(.ghsau.com),web1和web2用于访问应用系统,passport用于访问认证系统。
& & & &项目中包含的是两个Eclipse Project,导入到Eclipse/MyEclipse后,可能需要设置下JavaEE类库。WebSSOAuth为认证系统,WebSSODemo为应用系统,如果映射的域名和我设置的一样,不需要设置,直接部署即可。如果不一样,需要修改下两个项目的web.xml文件。关键配置信息如下:& & & &WebSSOAuth/WEB-INF/web.xml:
& & & &WebSSODemo/WEB-INF/web.xml:
& & & &如果域名或端口号和我的不一致,可以修改对应配置项。最后部署到应用服务器中,启动服务器。
& & & &首先输入第一个应用系统的访问地址,http://web1.ghsau.com:8080/WebSSODemo/index.jsp,如果是第一次访问的话,会自动跳转到登录页,如下图:
& & & &系统中内置了3个用户,张三、李四、王五,用户名和密码皆为拼音全拼,输入zhangsan/zhangsan登录后,会自动跳转到我们刚才访问的页面,页面中显示了登录的用户名及欢迎信息,如下图:
& & & &这时,我们再输入第二个应用系统的访问地址,http://web2.ghsau.com:8080/WebSSODemo/index.jsp,我们发现,没有进行第二次登录,同样页面中显示了登录的用户名及欢迎信息,如下图:
& & & &我们接着点击Logout注销用户,页面跳转到了登录页面,这时我们再回头访问第一个应用系统的页面,发现同样跳转到了登录页面。这给用户的使用效果就是,一个应用登录了,其它的应用都会自动登录,而一个应用中注销了,其它的应用也都会自动注销,好神奇的样子。& & & &项目中提供了源码,代码的实现思路就是上面的那个图,ticket保存在cookie中,利用cookie域的特性,实现了ticket在不同应用中都能够获取到,ticket的验证过程是使用了HttpClient来发送的验证请求,ticket的加密使用了3DES,具体可以看DESUtils.java,好了,就到这里吧,如果有什么问题,欢迎讨论。标签:&&&&&&&&&&&&&&&&&&原文地址:http://www.cnblogs.com/webapplee/p/3853102.html
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!清除回答草稿
&&&您需要以后才能回答,未注册用户请先。[问题]请问怎么设置DHCP?谢谢?父域,域名什么意思?
[问题点数:0分]
本版专家分:0
结帖率 100%
CSDN今日推荐
本版专家分:0
匿名用户不能发表回复!
其他相关推荐

我要回帖

更多关于 cookie殿下脱饭为什么 的文章

 

随机推荐