首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

cookie的圈套

2012-07-24 
cookie的陷阱?问题简述final Cookie c new Cookie(cookie.getName(), null)c.setMaxAge(0)inv.getResp

cookie的陷阱

?

问题简述

final Cookie c = new Cookie(cookie.getName(), null);c.setMaxAge(0);inv.getResponse().addCookie(c);

?问题来了,此cookie根本没有被删除,也就是说注销根本不起作用。

直接原因

删除的时候没有设置path,默认的path跟当前的uri有关,也就是说如果注销的uri为“xxx/user/logout”,那么就设置cookie的path为“xxx/user”,而对cookie来说,name不是它的唯一标识,还包括domain和path,直接原因是删除的时候没有显示的指定path为“/”。

扩展阅读

Path的可见性

同一个domain下,当前请求只能读取到其uri的所有父类uri的cookie,“读取到”是什么概念呢,在servlet中就是说从request取出来的cookies存在你想要的cookie。比如path为“/”,那么所有domain下的uri都能读取到,如果path为“/lib”,那么只有“/lib/…”下面的uri能够读取到,如果path为“/lib/user”,那么uri为“/lib”的请求从request里取出来的cookie就不包含path为“/lib/user”的cookie,这就是path的可见性。

从cookie中只能取出key/value

在调试的时候,我发现从request里取出来的cookie只有key和value,其他诸如domain和maxage等信息都丢失了,不是很明白其中的缘由,做个记录,如有高人路过指点就再好不过了。

?

1 楼 greatwqs 2011-08-20   说的明白一些你这个就是sso基于cookie的单点登录一种实现.
说起cookie中的demain,我在nginx搭建的一个域名上面测试过,也不能显示出domain的值.

但是我在初始化cookie的时候还是把cookie全部初始化了的. 2 楼 cantellow 2011-08-20   greatwqs 写道说的明白一些你这个就是sso基于cookie的单点登录一种实现.
说起cookie中的demain,我在nginx搭建的一个域名上面测试过,也不能显示出domain的值.

但是我在初始化cookie的时候还是把cookie全部初始化了的.
嘿,多在互联网打拼一年就是不一样,我才入门,还有很多需要学的。

热点排行