问题简述
在做一个自动登录功能,登录的时候持久化cookie(没有加密,仅供测试):
final Cookie cookie = new Cookie("user", user.getId());
cookie.setMaxAge(5 * 60);
cookie.setPath("/");
inv.getResponse().addCookie(cookie);
注销的时候删除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等信息都丢失了,不是很明白其中的缘由,做个记录,如有高人路过指点就再好不过了。
分享到:
相关推荐
很多小伙伴在面试时,看似可以跟 ...其实,在我们面试的时候,面试官随便抛出来的问题,你以为很容易,但可能处处都含有陷阱。而这些陷阱,就隐藏在问题之中。在面试中主要有哪些陷阱,以及我们该如何巧妙地避开它们。
cookie 也可以用来做访问凭证 解决办法:请求头里面添加对应的参数(复制浏览器里面的数据) 2、根据用户行为来进行反爬 请求频率过高,服务器设置规定时间之内的请求阈值 解决办法:降低请求频率或者使用代理(IP...
原始的陷阱!脚本是彼此之间的基础。它包括许多用途,但最常见的是: -Cookie登录超过10个浏览器和应用程序。 -包括RAT Stub和Gotcha!脚本(实验) -截屏/实时流化摄像机多达4种类型,以及监视器 -修改和扩展/...
我遇到了几个“陷阱” “ s,而且我不想吓off F#新手。 添加到您的项目 到目前为止,RavenDB实现是唯一的一种。 要使用它,只需通过选择的包管理器添加FreyaSessionProvider.RavenDB包即可。 在项目中使用 ...
有一个陷阱。赶上又名先决条件此代码通过使用指示访问者是否在欧盟的cookie来起作用。 有几种方法可以完成此操作,对于许多人来说,使用Fastly或Akamai可以在CDN级别轻松地完成此操作。 您还可以在呈现页面之前进行...
2.4 绕开脚本陷阱 2.5 总结 第3章 开发环境和调试方法 3.1 我能用什么来编写脚本--适合编写JavaScript的文本编辑器 3.2 来自浏览器的支持 3.3 集成开发环境 3.4 调试工具--提升开发效率的利器...
就这样,当攻击者编写脚本,设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。跨站脚本攻击有可能造成以下影响:利用虚假信息骗取用户个人信息利用脚本窃取用户的Cookie值,被害人在不知情的情况下...
Crop和自动WEBP格式的现代图像组件所有页面的模块化页面内容,包括动态网格布局可定制的促销横幅可自定义的Cookie通知辅助功能: ARIA具有里程碑意义的角色保留默认焦点状态以用于键盘导航正确捕捉具有对焦陷阱功能...
奖金回合和“热土豆”回合中使用松散单词,而“热土豆”回合中仅使用陷阱单词,如下所述。 该应用程序将跟踪会话中使用的所有单词和拼图,但是该数据不会保存在例如cookie中。 热土豆 Hot Potato回合是为此
说到面试就不得不提有“死亡陷阱”之称的群面,作为校招面试中的第一轮环节它的平均通过率只有8.33333%,如果面的是大厂通过率无疑更低,十进一、二的情况比比皆是。今天,我们就来说说群面最经典的送命题之——...
6.4.1 Cookie安全 6.4.2 清理IE临时文件 6.4.3 设置安全级别 6.4.4 分级审查 6.5.Windows服务安全 6.5.1 服务概述 6.5.2 服务控制台 6.5.3 删除服务 6.6 运行方式(RunAS)安全 6.6.1 启动“Secondary.Logon”服务 ...