十、深入理解Cookie机制
https://blog.****.net/ak739105231/article/details/102561723
前言:cookie是很简单的知识,也是Web端一个重要的数据来源;现在就利用Fiddler来抓取HTTP请求,理解cookie实现登录原理;
一、会话机制
http协议是无状态的;即:对于浏览器的每一次请求,服务器都会独立处理,请求之间不相关联;这样服务器并不知道是哪个用户的请求,为了让服务器识别到对应浏览器;就需要服务器、浏览器共同维持一个状态,这就是会话机制;
cookie机制是一种会话机制,cookie是浏览器用来存储少量数据的一种机制,以“key=value”形式存储。
二、认识cookie
浏览器---》服务器,通过http请求header,如:"Cookie : ip_country=CN……"
服务器---》浏览器,通过http响应header,如:"Set-Cookie : ip_country=CN……"
1.cookie的属性:
Expires属性:Expires的值是一个时间,代表过期时间;
Path属性:表示Cookie所属的路径,asp.net默认是“/”;就是根目录;cookie只能让其path路径下的页面访问;
HttpOnly属性:这是关于安全方面的属性,将一个Cookie下设置HttpOnly后,javaScript脚本将无法读取cookie信息;有效的防止了XSS攻击;
2.cookie的作用:
a.除了用来做用户认证外,还可以保存用户的一些其它信息;
b.cookie也可以用于互联网精准广告定向技术,例如:某个用户浏览了某些商品,就可以用cookie将其记下,对其精准定位。
二、cookie分类
1.会话cookie是一种临时的cookie,它记录了用户的访问站点时的设置和偏好;关闭浏览器,会话cookie就被删除了;
2.持久cookie存储在硬盘上,不管浏览器退出或者计算机重启,持久cookie都继续存在。持久cookie有过期时间;
三、cookie保存在哪里?
Cookie时存在硬盘上的,每个浏览器的cookie存储目录不同,互不干涉。
四、使用和禁用cookie
在控制面板--internet选项--》可以禁用cookie
五、网站自动登录的原理(截图也有植入cookie的方式)
在登录页面输入密码、用户名,选择保存密码单击登录(此时,你的计算机已保存好了登录的cookie,你可以找到cookie,复制下来),然后清空缓存,访问你刚刚访问的链接,带上你复制的cookie,你自己已经是登录状态了;
实例:不需用账号、密码,就可访问一个网址(如:http://athena-mf.x'x'x'x'x.com/index)
1.在B计算机登录,获取到cookie:
Cookie: JSESSIONID=0b015a9a-5741-47eb-a707-4fd2b1dc75ab;
2.在A计算机上,使用Fiddler的FiddlerScript编辑脚本,在request的header中add 这个cookie;然后在浏览器中直接访问http://athena-mf.x'x'x'x'x.com/index,你会发现你已成功登录;
六、cookie与文件缓存的区别
很多人把cookie和文件缓存混淆,其实他们是完全不一样的东西;唯一可能一样的是他们存在硬盘上的同一个目录下;