`
cantellow
  • 浏览: 842570 次
  • 性别: Icon_minigender_1
  • 来自: 草帽海贼团
社区版块
存档分类
最新评论

cookie的陷阱

    博客分类:
  • web
 
阅读更多

 

问题简述

在做一个自动登录功能,登录的时候持久化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”,那么就设置cookiepath为“xxx/user”,而对cookie来说,name不是它的唯一标识,还包括domainpath,直接原因是删除的时候没有显示的指定path为“/”。

扩展阅读

Path的可见性

同一个domain下,当前请求只能读取到其uri的所有父类uricookie,“读取到”是什么概念呢,在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只有keyvalue,其他诸如domainmaxage等信息都丢失了,不是很明白其中的缘由,做个记录,如有高人路过指点就再好不过了。

 

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

但是我在初始化cookie的时候还是把cookie全部初始化了的.

嘿,多在互联网打拼一年就是不一样,我才入门,还有很多需要学的。
1 楼 greatwqs 2011-08-20  
说的明白一些你这个就是sso基于cookie的单点登录一种实现.
说起cookie中的demain,我在nginx搭建的一个域名上面测试过,也不能显示出domain的值.

但是我在初始化cookie的时候还是把cookie全部初始化了的.

相关推荐

    5.2【面试小技巧】大厂面试时怎样才能躲开HR的那些陷阱?小白速进!#资源达人分享计划#资源分享达人.pdf

    很多小伙伴在面试时,看似可以跟 ...其实,在我们面试的时候,面试官随便抛出来的问题,你以为很容易,但可能处处都含有陷阱。而这些陷阱,就隐藏在问题之中。在面试中主要有哪些陷阱,以及我们该如何巧妙地避开它们。

    python 常见的反爬虫策略

    cookie 也可以用来做访问凭证 解决办法:请求头里面添加对应的参数(复制浏览器里面的数据) 2、根据用户行为来进行反爬 请求频率过高,服务器设置规定时间之内的请求阈值 解决办法:降低请求频率或者使用代理(IP...

    gotcha

    原始的陷阱!脚本是彼此之间的基础。它包括许多用途,但最常见的是: -Cookie登录超过10个浏览器和应用程序。 -包括RAT Stub和Gotcha!脚本(实验) -截屏/实时流化摄像机多达4种类型,以及监视器 -修改和扩展/...

    FreyaSessionProvider:Freya的会话存储

    我遇到了几个“陷阱” “ s,而且我不想吓off F#新手。 添加到您的项目 到目前为止,RavenDB实现是唯一的一种。 要使用它,只需通过选择的包管理器添加FreyaSessionProvider.RavenDB包即可。 在项目中使用 ...

    simple-gdpr-lockdown:您无需因GDPR阻止欧盟的访客。 只是锁定您的网站

    有一个陷阱。赶上又名先决条件此代码通过使用指示访问者是否在欧盟的cookie来起作用。 有几种方法可以完成此操作,对于许多人来说,使用Fastly或Akamai可以在CDN级别轻松地完成此操作。 您还可以在呈现页面之前进行...

    JavaScript王者归来part.1 总数2

     2.4 绕开脚本陷阱 2.5 总结   第3章 开发环境和调试方法  3.1 我能用什么来编写脚本--适合编写JavaScript的文本编辑器   3.2 来自浏览器的支持   3.3 集成开发环境   3.4 调试工具--提升开发效率的利器...

    web攻击技术与防护

    就这样,当攻击者编写脚本,设下陷阱,用户在自己的浏览器上运行时,一不小心就会受到被动攻击。跨站脚本攻击有可能造成以下影响:利用虚假信息骗取用户个人信息利用脚本窃取用户的Cookie值,被害人在不知情的情况下...

    hull-shopify-starter

    Crop和自动WEBP格式的现代图像组件所有页面的模块化页面内容,包括动态网格布局可定制的促销横幅可自定义的Cookie通知辅助功能: ARIA具有里程碑意义的角色保留默认焦点状态以用于键盘导航正确捕捉具有对焦陷阱功能...

    BodyLanguage-Vue:Web浏览器应用程序,有助于播放肢体语言游戏节目

    奖金回合和“热土豆”回合中使用松散单词,而“热土豆”回合中仅使用陷阱单词,如下所述。 该应用程序将跟踪会话中使用的所有单词和拼图,但是该数据不会保存在例如cookie中。 热土豆 Hot Potato回合是为此

    5.1【面试小技巧】群面中自己和队友你选哪一个?小白必看,身临其境教你如何解围!#资源达人分享计划#资源分享达人.pdf

    说到面试就不得不提有“死亡陷阱”之称的群面,作为校招面试中的第一轮环节它的平均通过率只有8.33333%,如果面的是大厂通过率无疑更低,十进一、二的情况比比皆是。今天,我们就来说说群面最经典的送命题之——...

    Windows Server 2003系统安全管理

    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”服务 ...

Global site tag (gtag.js) - Google Analytics