cookie同名不同路径,导致无法注销问题
cookie
Cookie
路径
无法
如果
注销
&ldquo
问题
设置
同名
编程进阶笔记
发布日期
2022-09-07
更新日期
2022-09-07
阅读次数 97
文章字数 1.1k
属性 | 描述 |
name | Cookie的名称,Cookie一旦创建,名称便不可更改 |
value | Cookie的值。如果值为Unicode字符,需要为字符编码。如果值为二进制数据,则需要使用BASE64编码 |
maxAge | Cookie失效的时间,单位秒。如果为正数,则该Cookie在maxAge秒之后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为-1。 |
secure | 该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false。 |
path | Cookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。 |
domain | 可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”。 |
comment | 该Cookie的用处说明,浏览器显示Cookie信息的时候显示该说明。 |
version | Cookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范 |
当你为不同的路径设置了 cookie,则有可能引发奇怪的错误。
比如:无法注销。
cookie一旦设置不能被服务器删除,只能覆盖,此时如果 cookie 的路径并不是你设置的那个路径,则会出现无法注销问题。
浏览器发送时,只发送了 cookie 的 name 和 value,而其他属性包括:路径、有效期等都是服务器不可感知的。
你收到了一个 cookie ,你想注销它,把它设置为 null ,你以为它是 / 路径,实际可能是 /admin ?那么就有可能导致你服务器一直能接收到这个值,但是又删不掉。
最后,通过手动打开浏览器查看网站的所有 cookie ,终于发现一个不是 / 且同名的 cookie,手工把它清除掉,从而解决了无法注销问题。
不过,仍然没有足够“智能”的办法,无论是 js 还是 服务器,均无法感知 cookie 的路径!!!又无法直接删除取得的cookie,如果通过代码删除这些错误的cookie是很难实现的。
文章作者: 朱丰华
文章链接: https://smart.52dixiaowo.com/blog/post-49.html
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。
cookie
Cookie
路径
无法
如果
注销
&ldquo
问题
设置
同名
发表评论
相关推荐