问题简述
在做一个自动登录功能,登录的时候持久化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等信息都丢失了,不是很明白其中的缘由,做个记录,如有高人路过指点就再好不过了。
分享到:
相关推荐
4. **问题解决**: 解答了一些常见的错误和陷阱,帮助开发者避免常见问题。 ### 注释中文翻译的价值 源代码中的中文注释使得理解每个函数和逻辑变得更加容易,特别是对于那些不熟悉JavaScript或者英语不是母语的...
在下载验证码图片后,还需要注意到获取验证码时的一个陷阱:请求中包含了随机数以防止缓存,所以我们需要在URL末尾添加一个随机值。 ```python import random captcha_url = soup.find("img", id="captchaImg")['...
很多小伙伴在面试时,看似可以跟 ...其实,在我们面试的时候,面试官随便抛出来的问题,你以为很容易,但可能处处都含有陷阱。而这些陷阱,就隐藏在问题之中。在面试中主要有哪些陷阱,以及我们该如何巧妙地避开它们。
cookie 也可以用来做访问凭证 解决办法:请求头里面添加对应的参数(复制浏览器里面的数据) 2、根据用户行为来进行反爬 请求频率过高,服务器设置规定时间之内的请求阈值 解决办法:降低请求频率或者使用代理(IP...
- **JavaScript操作Cookie的风险:** 使用JavaScript可以直接修改或获取Cookie的值,这可能会带来安全风险。 - 示例: ```javascript javascript:alert(document.cookie = "login=yes") ``` - **结论:** 在...
- **作为其他攻击的跳板:** XSS可以作为钓鱼攻击、社会工程学等复杂攻击的一部分,引导用户进入更深层次的陷阱。 **案例分析:** Yupoo的XSS漏洞 在Yupoo的案例中,攻击者利用一处XSS漏洞,构造了一个能够读取...
3. **处理Spider Traps**:爬虫陷阱是指网站设计用来捕获爬虫的机制,如动态URL、无限循环链接等。应对策略包括: - 对于动态URL,可尝试识别并统一处理。 - 遇到循环链接时,设定循环检测阈值,超过阈值则停止...
原始的陷阱!脚本是彼此之间的基础。它包括许多用途,但最常见的是: -Cookie登录超过10个浏览器和应用程序。 -包括RAT Stub和Gotcha!脚本(实验) -截屏/实时流化摄像机多达4种类型,以及监视器 -修改和扩展/...
它可能会深入浅出地讲解如何识别和避免常见的安全陷阱,提高用户的安全意识。 2. **Cookie之困.pdf** - Cookie是Web应用中的关键组件,但也是黑客攻击的目标。这份报告可能详细分析了Cookie的安全隐患,如会话劫持...
理解并避免常见的编程陷阱,如不当的异常处理、未检查的输入和错误的资源管理,都是开发安全软件的关键。ASP.NET MVC框架引入了模型绑定和视图模型,有助于减少输入验证的复杂性。 最后,我们不能忽视部署和运行时...
应对这些反爬虫措施,爬虫程序开发者需要采取相应的策略,比如使用代理IP池、设置合理的请求间隔、设置用户代理(User-Agent)、使用cookie池、通过图灵测试解决验证码问题等。 IP地址封锁是网站通过识别重复IP地址...
4. XSS 和 CSRF 两种跨站攻击的防御方法分别是对用户输入进行转义、不允许 JS 对 cookie 的读写,和使用 cookie 加参数等形式过滤。 5. 事件委托的目的、功能和写法是把一个或者一组元素的事件委托到它的父层或者更...
我遇到了几个“陷阱” “ s,而且我不想吓off F#新手。 添加到您的项目 到目前为止,RavenDB实现是唯一的一种。 要使用它,只需通过选择的包管理器添加FreyaSessionProvider.RavenDB包即可。 在项目中使用 ...
- **Cookie**:理解Cookie的概念,学会如何设置和读取Cookie,实现简单的用户登录状态保存。 #### 四、数据库操作 - **关系型数据库**:介绍如何使用PHP与MySQL或Oracle等关系型数据库进行交互,包括连接数据库、...
- **最佳实践**: 如何避免常见的安全陷阱。 **3. 进阶APT(Advanced Persistent Threats)** - **定义**: 高级持续性威胁,指的是一种网络攻击,通常由黑客组织发起,旨在长期潜伏于目标系统内进行信息收集。 - **...
有一个陷阱。赶上又名先决条件此代码通过使用指示访问者是否在欧盟的cookie来起作用。 有几种方法可以完成此操作,对于许多人来说,使用Fastly或Akamai可以在CDN级别轻松地完成此操作。 您还可以在呈现页面之前进行...
6. **session和cookie管理**:对于用户登录和购物车功能,可能会用到session和cookie来跟踪用户的会话信息,例如登录状态和购物车内容。 7. **动态内容生成**:ASP允许根据用户请求生成动态内容,例如搜索结果页面...
同时,它还能有效阻止潜在的恶意网站,防止用户误入陷阱,确保上网安全。 2. **广告拦截** 广告拦截是菠萝净化大师的主要特色之一。它能够识别和阻止各种形式的在线广告,包括弹窗广告、横幅广告、视频广告等,使...
2.4 绕开脚本陷阱 2.5 总结 第3章 开发环境和调试方法 3.1 我能用什么来编写脚本--适合编写JavaScript的文本编辑器 3.2 来自浏览器的支持 3.3 集成开发环境 3.4 调试工具--提升开发效率的利器...