Cookie小解

[size=medium]Cookie是客户端与服务器沟通的一个信息包
当服务器设置了客户端的Cookie后,只要没有过期,
浏览器每次请求都会带着这个Cookie,
这可以作为客户端的标志信息,向服务器端说明自己的身份.
其实这个Cookie在客户端是可以伪造的,不过是name=value键值对
这也警告了我们,客户端传递到服务器的任何信息都是不可靠的.
不要以为你用javascript控制了输入就可以阻止这种情况的发生.

对于这种不可信的情况,如果客户端操作是很关系到权限问题的,就需要确定一下客户端的真实有效性.如果只是一般的登录信息,不涉及修改业务数据,则可以不去验证,需要时才进行验证.
以前的做法是将username跟某些字符串结合加密,也将这个結果设置为Cookie,当拿回username时同时拿到那个加密值,再验证是否一致.
但是这个加密的字符串客户端就没法伪造了吗?应该至少没有那么容易吧.

还是回到怎样设置跟读取Cookie的问题上来
[b](1).设置Cookie[/b]
构造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);//这样就完成了写入

[b](2).获得Cookie[/b]
我们设置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();
}


[b]总结[/b]
其实用java操作Cookie时还是设置Cookie那个地方最可能出错
特别是使用cookie.setDomain(domain);时
这个domain是不用考虑端口号的
还是尽量不要去设置domain,这样问题比较少
还有就是如果domain为null时而又执行cookie.setDomain(domain)可能会报错

[/size]
中小学管理平台规划建设方案Word(47页).docx 智慧方案是面向IT全行业打造的数字化落地支撑体系,依托物联网、大数据、人工智能等技术,覆盖小程序开发、智能安防、能源数字化、农机智慧管理等细分垂直场景,跳出通用模板的空泛框架,从业务痛点出发搭建从需求调研到上线运维的全链路执行路径,是技术人员排查项目问题、撰写合规标书、推进数据治理的实用工具。想精准匹配自己细分领域的专属IT智慧方案,直接进入找方案知识星球,垂直赛道专属方案库随查随用,不用在零散资料里反复筛选,快速拿到能直接落地的参考内容。 立即下载

相关推荐

智慧粮仓建设方案Word(74页).docx

智慧方案是面向IT全行业打造的数字化落地支撑体系,依托物联网、大数据、人工智能等技术,覆盖小程序开发、智能安防、能源数字化、农机智慧管理等细分垂直场景,跳出通用模板的空泛框架,从业务痛点出发搭建从需求调研到上线运维的全链路执行路径,是技术人员排查项目问题、撰写合规标书、推进数据治理的实用工具。想精准匹配自己细分领域的专属IT智慧方案,直接进入找方案知识星球,垂直赛道专属方案库随查随用,不用在零散资料里反复筛选,快速拿到能直接落地的参考内容。

使用cookie设置域名(小细节未必你知道!)

最近做项目使用COOKIE的时候遇到了一点的问题,原来我一直都不知道呐。 目前项目使用IIS是在XP下面只能架设一个站点,大多网站已虚拟目录形式架设,访问方式域名都是localhost。而以前是用SEVER所以可以架设多个网站,同时我也会拟定域名类似(www.baidu.com)所以设置COOKE基本没有问题。如今问题来了。 在localhost下面设置域名 谷歌:设置不成功(不是有效的域名...

web开发自学 854

【计算机图形学】基于粒子系统的创意烟花实现:HTML5 Canvas、Three.js与Pygame多技术栈综合应用指南

内容概要:本文档系统讲解了创意版烟花的完整实现路径,从粒子系统原理出发,深入剖析烟花效果的五大核心阶段——上升、爆炸、扩散、衰减与拖尾,并基于四种技术栈(HTML5 Canvas、Three.js、Python Pygame、AI音乐节拍同步)提供可运行的完整代码方案。文档涵盖基础实现、视觉增强(形状变化、闪烁、二次爆炸)、交互升级(鼠标拖动、手势控制)、性能优化(对象池、渲染优化)、部署上线(GitHub Pages、Vercel)及创意拓展(文字烟花、数据可视化、协同互动),形成“原理→编码→调优→部署→创新”的闭环学习链路。同时融入Web Audio API节拍检测、滑动窗口动态阈值等实用算法,助力开发者打造兼具美观性与技术深度的动态视觉作品。; 适合人群:具备基础编程能力的前端开发者、Python爱好者、多媒体交互设计人员,以及希望提升图形编程与动效设计能力的工作1-3年研发人员;也适用于教学演示、作品集建设或创意项目原型开发。; 使用场景及目标:①掌握粒子系统在动画与游戏开发中的底层实现机制;②实现网页端与桌面端的高性能烟花特效;③构建音乐可视化、数据艺术、互动装置等融合型项目;④学习从代码实现到线上部署的全流程工程实践。; 阅读建议:建议按照“Canvas基础→进阶优化→3D/Pygame/AI扩展”的路径逐步实践,重点关注参数调优表与性能优化策略,在调试中理解每行代码的作用;对于音乐同步等复杂功能,可先运行成功案例再深入算法逻辑,结合实际项目需求灵活组合各项技术模块。

cookies,session,token都是相对安全,并不能完全防窃取

cookies,session,token都是相对安全,并不能完全防窃取

质量不太好的博客 5344

设置Cookie时,当设置了域名时,后端就获取不到Cookie了,把设置Domain注释掉就好了

写了一个公共方法,设置Cookie 发现,当设置了域名时,后端获取不到Cookie了,把设置Domain注释掉就好了 并且,不设置PATH时,比如请求的URL为工程目录+"/login", cookie的 PATH为根目录:/ 新增cookie代码如下: /** * 设置Cookie的值,并使其在指定时间内生效 * * @param cooki...

u013282737的博客 3512

medium 高级文章限制解决办法

最近学习一些模型,搜到了medium,但是看了三篇高级文章之后需要每个月交5$,可我很穷,后来发现可以将要阅读的链接贴到其他博客里面,然后用没有medium cookie登录的浏览器点击链接,重定向一次看就可以,这篇文章就留着这么用吧。 1、openai GPT2介绍 https://towardsdatascience.com/openai-gpt-language-modeling-on-...

yuexiaomao的博客 2345

Cookie的所有属性详解

Cookie 本文将会讲一下Cookie 的各种属性 下图是浏览器中的Cookie截图,属性分别有Name、Value、Domain、Path、Expires/Max-age、Size、HttpOnly、Secure、SameSite和Priority。   Name和Value Name和Value是一个键值对。Name是Cookie的名称,Cookie一旦创建,名称便不可更改,一般名称不区分大小写;Value是该名称对应的Cookie的值,如果值为Unicode字符,需要为字符编码。如果值为二进制数据

风吹过的博客 1万+

cookie 小解

cookie的组成 name 名称 value 内容 Domain 作用域 Path 作用路径 Max-Age 多少秒后过期 HttpOnly 脚本不可访问 Secure 只有在https下才传递cookiecookie的作用域默认为当前域名,作用路径默认为当前路径 cookie 只有在 有效的作用域和作用路径下,浏览器才会将cookie 发送给服务器

三易专栏 385

Cookie小解2

Cookie最早用来标识和认证一个用户,其处理分为以下几步: 1.服务端向客户端发送Cookie 2.浏览器Cookie保存 3.之后每次浏览器服务服务器时都会将Cookie发向服务器端 -----------------------------------------------------------------------------------------------------...

weixin_30898109的博客 123

cookie和session小解

1、都会在浏览器端保存,有大小限制,同源限制 2、cookie会在请求时发送到服务器,作为会话标识,服务器可修改cookie 3、cookie有path概念,子路径可以访问父路径cookie,父路径不能访问子路径cookie 4、有效期:cookie在设置的有效期内有效,默认为浏览器关闭5、5、sessionStorage在窗口关闭前有效 5、cookie有secure属性要求HTTPS传输

程序员小周的博客 289

cookie和session、localStorage和sessionStorage小解

cookie和session、localStorage和sessionStorage一、cookie和session二、localStorage和sessionStorageWebStorage 一、cookie和session cookie和session都是用来跟踪浏览器用户身份的会话方式。 区别: 1、保持状态:cookie保存在浏览器端,session保存在服务器端 2、使用方式: (1)cookie机制:如果不在浏览器中设置过期时间,cookie被保存在内存中,生命周期随浏览器的关闭而结束,这

行大于言 578

javaee-cookie响应,请求小解

1.cookie是首先由服务器向浏览器发送的     cookie最早来源于服务器,它像浏览器发送的响应头,如下:     HTTP/1.1 200 Server:...Set-Cookie: name=adminSet-Cookie: nickname=nick_admin; Set-Cookie: email="test1@it315.org";Set-Cookie: phone=1...

cfan_haifeng的专栏 235

fetch小解

fetch小解 原生xhr、jquery ajax、axios、fetch对比 // 原生XHR var xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log(xhr.responseText) // 从服务器获取数据

行大于言 206

session机制小解

关闭浏览器session仍然存在,因为session是储存在服务器端的,而服务器是不可能知道你有没有关掉浏览器。 服务器只是简单的保持session接受用户请求,只有当session一段时间没有被请求(比如30分钟以后),服务器才会把session作废。客户端与服务器交互session的时候,客户端会生成一个cookie,这个cookie包含了当前session的ID号。你再次打开浏览器的时

perry1230的博客 219

session知识小解

1.建立一个脚本one.php                             //开启session使用函数session_start(),之前不能有任何输出:开启时,服务器向客户端的cookie文件中写入了session id,                 //同时在服务器创建了一个和session id同名的文件,保存客户端用户的相关信息;               

living_ren的博客 410

使用cookie模拟登录

参考:https://blog.csdn.net/c406495762/article/details/69817490 1、有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容,登陆前与登陆后是不同的,或者不允许的。   使用Cookie和使用代理IP一样,也需要创建一个自己的opener。在HTTP包中,提供了cookiejar模块,用于提供对Cookie的支持。 2 将C...

csdn86868686888的博客 3407

WorkBuddy - 副本2

WorkBuddy - 副本2

上一篇: eclipse项目的离奇事件
下一篇: java URL encoding and decoding
linvar
博客等级 码龄18年 0粉丝 55原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值