`
- 浏览:
259099 次
- 性别:
- 来自:
未定
-
Cookie是客户端与服务器沟通的一个信息包
当服务器设置了客户端的Cookie后,只要没有过期,
浏览器每次请求都会带着这个Cookie,
这可以作为客户端的标志信息,向服务器端说明自己的身份.
其实这个Cookie在客户端是可以伪造的,不过是name=value键值对
这也警告了我们,客户端传递到服务器的任何信息都是不可靠的.
不要以为你用javascript控制了输入就可以阻止这种情况的发生.
对于这种不可信的情况,如果客户端操作是很关系到权限问题的,就需要确定一下客户端的真实有效性.如果只是一般的登录信息,不涉及修改业务数据,则可以不去验证,需要时才进行验证.
以前的做法是将username跟某些字符串结合加密,也将这个結果设置为Cookie,当拿回username时同时拿到那个加密值,再验证是否一致.
但是这个加密的字符串客户端就没法伪造了吗?应该至少没有那么容易吧.
还是回到怎样设置跟读取Cookie的问题上来
(1).设置Cookie
构造Cookie:
Cookie cookie = new Cookie(name, value);
这个时候可以考虑设置Cookie的path,maxAge,domain
cookie.setPath("/"); //在"/"路径下有效
cookie.setDomain(".iteye.com");
//在iteye.com域上设置这个cookie,其实这是跨域设置Cookie,经我测试是不能设置的,这样也对,别人的域怎么能让你乱设Cookie呢.默认就是设置服务器的URL.如果自己可以控制的域的话,比如自己域名的三级域名,就可以设置这个值,而且必须以"."开头
cookie.setMaxAge(-1);//默认值就是-1
//当maxAge是负数时,表示这个Cookie在浏览器关闭后消失
//当maxAge是0的话,表示删除这个Cookie
//当maxAge大于0时,表示这个Cookie存活的秒数,就算关闭浏览器后打开都有效
当完成了Cookie的构造配置,就应该写入到客户端了
response.addCookie(cookie);//这样就完成了写入
(2).获得Cookie
我们设置Cookie时是使用的键值对,所以获取时应该通过这个键才行
首先从request里拿到Cookie数组
Cookie[] cookies = request.getCookies();
循环这个数组拿到对应的Cookie
String name = "somekey";
Cookie cookie22 = null;
for(Cookie cookie: cookies){
if(name.equal(cookie.getName()){
cookie22 = cookie;
}
}
如果这个cookie不为null的话再取出相应的value值
String value = null;
if(cookie22 != null){
value = cookie22.getValue();
}
总结
其实用java操作Cookie时还是设置Cookie那个地方最可能出错
特别是使用cookie.setDomain(domain);时
这个domain是不用考虑端口号的
还是尽量不要去设置domain,这样问题比较少
还有就是如果domain为null时而又执行cookie.setDomain(domain)可能会报错
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
JavaEE是企业级应用开发的标准框架,其中Cookie是它用于管理客户端会话状态的重要机制。在Web应用程序中,Cookie常用来存储用户偏好设置、登录状态等信息,它们会在客户端浏览器和服务器之间来回传递。本文将深入...
在Web开发中,Cookie是一种非常重要的技术,用于在客户端和服务器之间传递状态信息。Cookie的主要功能包括用户会话管理、个性化设置保存、跟踪用户行为等。在这个“cookie读写,子cookie”主题中,我们将深入探讨...
在IT领域,尤其是在Web开发中,Cookie的管理与安全至关重要。C#作为一种广泛使用的编程语言,在处理Cookie方面提供了丰富的功能,包括对Cookie的加密与解密。本文将深入探讨如何在C#中操作Cookie,以及如何实现...
### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的访问信息。在Web开发中,服务器可以将少量的信息发送到客户端浏览器,并存储在客户端,这种信息就是Cookie。当...
《EditThisCookie.crx:强大的Cookie管理工具及与curl的集成》 在互联网浏览中,Cookie扮演着重要的角色,它们存储用户信息、保持登录状态、个性化网页内容等。EditThisCookie.crx是一款专为Chrome浏览器设计的强大...
本文将详细讲解如何使用微信小程序中的cookie维护插件,实现自动设置和获取Cookie的功能,并特别关注增加的Cookie超时处理机制。 首先,理解Cookie的基本概念。Cookie是由服务器端生成,发送到客户端(浏览器)的一...
**Cookie浏览器** Cookie浏览器是一种特殊的网络浏览工具,它利用了HTTP协议中的Cookie技术来实现特定功能,如网页登录绕过和邮箱免登录。Cookie是Web服务器在用户浏览器上存储的一小段数据,用于识别用户身份、...
FlashCookie,也称为Local Shared Objects (LSO),是Adobe Flash Player为存储用户特定数据而引入的一种机制。不同于传统的HTTP Cookie,这些数据存储在用户的计算机上,不受浏览器的隐私设置或清除浏览器缓存操作的...
cookie cookie cookie cookie cookie cookie cookie cookie cookie cookie cookie cookie cookie cookie
var UserValue = unescape(allCookies.substring(cookie_User, cookie_UserEnd)); // 提取PwdCookie的值 cookie_Pwd += "PwdCookie".length + 1; var cookie_PwdEnd = allCookies.indexOf(";", cookie_Pwd); ...
标题中的“获取cookie非常好用的google插件”指的是在Google Chrome浏览器上的一种扩展程序,它允许用户方便地管理和操作浏览器中的Cookie数据。Cookie是网站在用户计算机上存储的小型文本文件,用于跟踪用户偏好、...
### jQuery 操作 Cookie 的方法详解 #### 一、前言 在前端开发中,通过 JavaScript 操作 Cookie 是一种常见的需求,尤其是为了实现用户状态的持久化存储或网站配置的保存等场景。jQuery 提供了一个非常方便的方式...
在易语言中,“取设cookie”是网络编程中的一个重要概念,主要用于处理网页浏览过程中的数据存储与交互。 Cookie是在HTTP协议下,服务器发送到用户浏览器并保存在本地的一小块数据,它用于记录用户的浏览历史、登录...
它的关键方法包括`getName()`(获取Cookie的名称)、`getValue()`(获取Cookie的值)、`setComment()`(设置Cookie的注释)、`setMaxAge()`(设置Cookie的有效期)以及`setPath()`和`setDomain()`(分别用于指定...
这涉及到Web开发中的基本概念,主要包括Cookie的工作原理、安全性以及相关编程实践。 Cookie是服务器发送到用户浏览器并存储的一小块数据,它包含了特定的用户信息。当用户访问设置了Cookie的网站时,浏览器会自动...
$.cookie('the_cookie'); // 获得cookie $.cookie('the_cookie', 'the_value'); // 设置cookie $.cookie('the_cookie', 'the_value', { expires: 7 }); //设置带时间的cookie $.cookie('the_cookie', '', { expires:...
### browser-cookie3:获取浏览器cookie #### 一、概述 `browser-cookie3` 是一个用于Python 3的库,能够帮助用户将当前浏览器中的cookies提取出来,并存储到一个`cookiejar`对象中,从而实现无需登录即可通过...
在QT中访问网页并获取Cookie是网络编程的一个重要部分,尤其对于需要实现自动化登录、跟踪用户状态或者进行Web服务交互的应用来说。 Cookie是一种在客户端和服务器之间传递信息的小型文本文件。服务器在响应HTTP...
在IT领域,尤其是在Web开发中,Cookie是一种非常重要的技术,用于在客户端和服务器之间存储和传递数据。在C#编程语言中,处理Cookie是构建动态Web应用程序的关键技能之一。本篇将深入探讨如何使用C#来创建、设置、...
在网络安全领域,Cookie是Web应用用来存储用户状态和信息的一种机制。然而,随着网络攻击手段的不断升级,Cookie的安全性也成为了关注的重点。XSS(Cross-Site Scripting,跨站脚本)攻击就是其中一种常见威胁,它...