cookie同名不同路径,导致无法注销问题

cookie Cookie 路径 无法 如果 注销 &ldquo 问题 设置 同名 编程进阶笔记
发布日期 2022-09-07 更新日期 2022-09-07 阅读次数 97 文章字数 1.1k

cookie有可能会重名,因为 cookie 不仅仅取决于 name,而且和路径有关

再次复习一下Cookie的属性

属性 描述
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 问题 设置 同名

发表评论

相关推荐
朱丰华   |   1年前   |   请求 · 一个

ab测压命令,apache测压工具

196    评论    点赞
朱丰华   |   1年前   |   php

windows下编写、编译php扩展

177    评论    点赞
朱丰华   |   1年前   |   linux · php

linux下编写、编译php扩展

161    评论    点赞
朱丰华   |   1年前   |   html

npm clean-mark,抓取网页文章内容,转换成markdown、html、txt

200    评论    点赞
朱丰华   |   1年前   |   javascript · js · obfuscator · 混淆

javascript-obfuscator混淆js文件

59    评论    点赞
朱丰华   |   1年前   |   js · 模块 · nodejs

nodejs引入自定义模块

56    评论    点赞
朱丰华   |   1年前   |   nvm · git · 安装

entos7安装、使用nvm

83    评论    点赞
朱丰华   |   1年前   |   python

python怎么引入自定义的子目录、父目录文件?

74    评论    点赞
朱丰华   |   1年前   |   python · linux · www

linux给www用户【非root】安装python3

212    评论    点赞
朱丰华   |   1年前   |   linux · 变量 · 环境

linux查看环境变量、设置环境变量

102    评论    点赞
朱丰华   |   1年前   |   python

python pip离线安装某个包

144    评论    点赞
朱丰华   |   1年前   |   php · 编译

ubuntu、centos系统从源码编译指定版本php--超详细

168    评论    点赞
朱丰华   |   1年前   |   文件 · c语言 · include

C语言include语法,h文件和c文件的关系

107    评论    点赞
朱丰华   |   1年前   |   linux

linux的which和whereis命令区别

102    评论    点赞
朱丰华   |   1年前   |   浏览器 · cookie

基于浏览器的自动获取cookie方案

143    评论    点赞
朱丰华   |   1年前   |   php

php的md5和md5_file是不是一样的?

128    评论    点赞
朱丰华   |   2年前   |   php · composer · linux · 安装

linux下安装composer

175    评论    点赞
朱丰华   |   2年前   |   php · set_include_path · include · 我们 · 文件 · include_path · 可以 · 如果 · get_include_path · PATH_SEPARATOR

php 函数 set_include_path

71    评论    点赞
朱丰华   |   2年前   |   生成 · ssh · 部署 · gitee · github · 密钥 · key · 公钥

生成 ssh key 密钥对,并部署到 gitee 和 github

120    评论    点赞
朱丰华   |   2年前   |   模块 · 仓库 · git · 使用 · 目录 · 文件 · 修改 · 如果

git子模块的使用

60    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞