`

让cookie失效要注意的问题

阅读更多

让cookie失效要注意的问题

下面的代码无法让cookie 失效,



 

因为保存的cookie 设置了path,

失效时没有设置path, 所以无法cookie 失效,

注意:想让cookie 失效,除了设置有效期为0,其他参数(path,domain)必须完全一样,

正确的:



 

/***
	 * 是否保存cookie
	 * @param response
	 * @param emaiCookieName
	 * @param cookieValue
	 * @param isSave : 是否保存用户名(记住用户名)
	 * @return
	 */
	public static Cookie rememberMe(Cookie[] cookies , /*HttpServletRequest request,*/HttpServletResponse response,String emaiCookieName, String cookieValue,
			boolean isSave) {
//		HttpServletRequest request = ServletActionContext.getRequest();

		boolean flag = false;
		// Cookie passwordCook = null;
		Cookie emailCook = null;
		if (cookies != null) {
			System.out.println("cookie 不为空");
			for (Cookie c : cookies) {
				// if (passwordCookieName.equals(c.getName()))
				// {
				// c.setValue(URLEncoder.encode(password, "utf-8"));
				// passwordCook = c;
				// flag = true;
				// continue;
				// }
//				if(c.getName().equals(Constant2.COOKIE_KEY_ISAUTO_LOGIN )){
//					System.out.println(Constant2.COOKIE_KEY_ISAUTO_LOGIN+":"+cookieValue);
//				}
				if (emaiCookieName.equals(c.getName()) ) {
					System.out.println("找到了 " + emaiCookieName);
					System.out.println("cookie的值为 " + c.getValue());
					if((! ValueWidget.isNullOrEmpty(cookieValue))){
					try {
						c.setValue(URLEncoder.encode(cookieValue, "utf-8"));
					} catch (UnsupportedEncodingException e) {
						e.printStackTrace();
					}
					}
					emailCook = c;
					flag = true;
					break;
				}
			}

		}

//		HttpServletResponse response = ServletActionContext.getResponse();
		if (isSave) {
			if (!flag) {
				System.out.println("没有找到 " + emaiCookieName);
				// passwordCook = new Cookie(passwordCookieName, URLEncoder
				// .encode(password, "utf-8"));
				try {
					emailCook = new Cookie(emaiCookieName, URLEncoder.encode(
							cookieValue, "utf-8"));
				} catch (UnsupportedEncodingException e) {
					e.printStackTrace();
				}
			}
			emailCook.setMaxAge(10000000);//单位是秒,所以大概115 天
            emailCook.setPath("/");//设置cookie时,设置path为根路径
            response.addCookie(emailCook);
			flag=true;
			System.out.println("保存cookie:"+emailCook.getValue());
		} else {
			if (flag) {
				System.out.println("让 cookie 失效");
				emailCook.setMaxAge(0);
                emailCook.setPath("/");//设置cookie时,设置path为根路径 ,如果不设置path ,则无法让cookie 失效
                response.addCookie(emailCook);
			}
		}


		return emailCook;
	}

 

参考:

http://hw1287789687.iteye.com/blog/2050040

  • 大小: 222.3 KB
  • 大小: 138.9 KB
0
0
分享到:
评论

相关推荐

    YII2自动登录Cookie总是失效的解决方法

    在使用YII2框架开发Web应用程序时,开发者经常会遇到自动登录Cookie失效的问题。Cookie失效会导致用户在关闭浏览器之后重新打开浏览器时,自动登录功能失效,用户需要重新登录。这会影响用户体验,并且可能会导致...

    解决前后端分离 vue+springboot 跨域 session+cookie失效问题

    在前后端分离的架构中,Vue.js作为前端框架与Spring Boot作为后端服务进行交互时,常常会遇到跨域和Session、Cookie失效的问题。本文将详细介绍如何解决这些问题。 首先,跨域是由于浏览器的安全策略限制,同一源...

    利用js-cookie实现前端设置缓存数据定时失效

    但要注意的是,localStorage不会触发Web Storage事件,所以在使用时需要注意浏览器兼容性和安全性问题。 2. 使用cookie:cookie的存储大小受到限制(大约4KB),但它同样可以用来存储小块数据,并设置过期时间。...

    微信小程序cookie维护插件 实现自动设置获取cookie功能

    在实际应用中,Cookie通常有生命周期,超过这个时间,Cookie就会失效。为了防止用户因Cookie过期而被迫重新登录,插件可以定期检查Cookie的有效性。一旦发现Cookie即将过期或者已经过期,它会触发一个事件,允许...

    cookie机制

    Cookie机制是HTTP协议中用于维护会话状态的客户端解决方案...因此,建议在使用Cookie时,要遵循相关法律法规,例如欧洲的GDPR或中国的网络安全法,并向用户清晰地说明Cookie的用途,最好还能提供一个同意或拒绝的选项。

    Net Cookie操作读取数据

    六、Cookie的安全与隐私问题 由于Cookie包含敏感信息,因此需要注意安全性和隐私保护。可以通过设置HttpOnly属性防止JavaScript访问Cookie,以降低XSS攻击风险;设置Secure属性确保Cookie只在HTTPS连接中传输,增加...

    如何在servlet 中 删除 cookie

    请注意,这种方法只删除了Servlet知道的Cookie,如果存在其他第三方或者未知来源的Cookie,它们将不会受到影响。因此,确保准确跟踪和管理在应用中设置的所有Cookie非常重要。 在实际应用中,你可能还需要考虑其他...

    JS添加Cookie的例子

    首先,让我们了解创建Cookie的基本步骤。在JavaScript中,我们使用`document.cookie`属性来操作Cookie。以下是一个创建Cookie的示例: ```javascript function setCookie(name, value, days) { var expires = ""; ...

    java对cookie的操作java对cookie的操作

    若设置为负值,Cookie将在浏览器关闭时失效。接着,我们可以通过`setPath()`设定Cookie的作用路径,例如`cookie.setPath("/test/test2")`。最后,使用`response.addCookie(cookie)`将Cookie添加到响应中,发送给...

    有关网站cookie的用法

    需要注意的是,Cookie的生命周期由`expires`属性控制,如果未指定,则默认为会话Cookie,浏览器关闭后即失效。另外,`path`属性决定了哪些页面可以访问该Cookie,而`domain`属性则允许跨子域共享Cookie。同时,每个...

    Cookie的应用例子

    四、Cookie的限制与注意事项 - 每个域下的Cookie数量有限制,通常不超过20个。 - 单个Cookie的大小不能超过4KB,以防内存溢出。 - 安全性问题:由于Cookie存储在客户端,敏感信息不应直接存入,应加密处理。 - 隐私...

    javascript操作cookie

    ### JavaScript操作Cookie知识点详解 #### 一、Cookie简介 ...- 使用JavaScript操作Cookie时要注意编码和解码,避免特殊字符导致的问题。 - 当处理大量的Cookie时,需要注意浏览器对单个站点Cookie数量和大小的限制。

    c#实现cookie和session的登陆实例

    每次用户访问同一网站时,浏览器会自动将Cookie发送回服务器,从而让服务器识别用户。Session则是在服务器端存储用户状态的一种方式,它为每个会话创建一个唯一的ID,保存在服务器的内存中,通过这个ID来追踪用户的...

    cookie 代码小例子

    在编程领域,Cookie是一种在客户端和服务器之间传递信息的小型文本文件。...在实际应用中,还要注意合理设置Cookie的有效期,以及考虑用户隐私和数据安全。希望这个小例子能帮助你快速掌握Cookie的使用。

    asp.net中Cookie的用法

    设置Cookie的有效时间可以让它在一段时间后自动失效。以下是一些示例代码: ```csharp // 设置1小时后过期 Response.Cookies["MyCookie"].Expires = DateTime.Now.AddHours(1); // 设置60分钟后过期 Response....

    淘号提取器,淘宝帐号cookie获取工具

    在开发过程中,通过登录接口获取Cookie通常涉及到复杂的网络请求和响应处理,且由于淘宝系统的安全性,这种手动操作容易导致Cookie失效或者无法正确获取。而淘号提取器通过内置浏览器的方式,模拟用户登录过程,从而...

    JavaScript数据存储 Cookie篇

    - **失效时间**:指定了Cookie何时过期,可设置为浏览器会话结束时或一个特定的日期和时间。 - **安全标志**:如果设置,确保Cookie只通过HTTPS安全连接发送,增强数据传输的安全性。 3. **Cookie示例** ``` ...

    cookie编辑器

    1. **谨慎操作**:修改Cookie可能会影响到网站的正常运行,因此在操作前应了解相关Cookie的作用,避免引起不必要的问题。 2. **隐私风险**:虽然编辑Cookie可以帮助保护隐私,但过度依赖或滥用也可能暴露个人偏好,...

    java中cookie的使用教程

    要删除Cookie,只需创建一个与要删除的Cookie具有相同名称的新Cookie,并将其最大存活时间设置为0: ```java Cookie cookieToRemove = new Cookie("name", ""); cookieToRemove.setMaxAge(0); response.add...

    ASP.NET中cookie读写方法介绍

    删除Cookie实际上是在客户端设置一个立即过期的同名Cookie,从而使原来的Cookie失效。 ```csharp // 删除名为"userInfo"的Cookie HttpCookie aCookie = new HttpCookie("userInfo"); aCookie.Expires = DateTime....

Global site tag (gtag.js) - Google Analytics