cookie和set-cookie的区别及token值

cookie和set-cookie的关系

请求头中的cookie和响应头的set-cookie的关系

前端若想访问后端的接口,需要后端接收到正确的ctoken值,而ctoken前端可以通过cookie获取ctoken字段
浏览器发送请求,服务器返回响应报文给浏览器,响应的Response Header中的Set-Cookie就是告诉浏览器为当前页面设置cookie,浏览器将会在当前页面所在域名设置cookie字符串。
当浏览器再次发送请求时,浏览器默认会自动将cookie中的字符串放在请求头中的Cookie项中发送给Web服务器。

set-cookie的属性

Set-Cookie: JSESSIONID=7A6D610CBD77353FAEAFF169AC7B1D16; Path=/; HttpOnly  


Set-Cookie: ctoken=O5kWnZU24hNA4eJq; Domain=.mayibank.net; Path=/  
属性Domain值,为当前客户端网址mayibank.net设置cookie的属性ctoken值

Set-Cookie中的属性Domain限定给mayibank.net域下设置ctoken,然后现在页面所在域却是natapp.cc,所以matiank.net有ctoken,此网络natapp.cc没有ctoken值,这就造成通过前端使用document.cookie方法获取不到ctoken值。

set -cookie与cookie的区别

  1. set-cookie是一个函数,由服务器向浏览器发出响应
  2. cookie是服务器发送给浏览器的变量
  3. 浏览器向服务器发送请求(put,get,post,delect方法),服务器会使用set-cookie()方法向本地的浏览器
    发送cookie,存在于电脑的一个txt文件下请添加图片描述

网络请求中的cookie与set-Cookie的交互模式和作用:

1、当很多人访问统一网络服务器,服务器如何区分不同的用户

sessionid,sessionid保证了浏览器和服务器唯一性的通信凭证号码,session保存在服务器上,sessionid保存在浏览器等客户端,服务器根据浏览器发送来的sessionid作为一个唯一的key值找到对应的用户。

所以说sessionid的唯一性用来区别和查询用户信息,因此sessionid的作用不言而喻。

2、我们经常说浏览器关闭后session就会被清除,那session有生命周期么?

有的,这个是服务器的配置,浏览器关闭只是把sessionid给清除了,所以在此打开浏览器并请求服务,你的登录状态无法找到,由此你需要重新登录。

一般情况下,浏览器如果不刷新或者不重新请求的话,服务器一般会缓存session数据20分钟左右。

3、cookie会被缓存,sessionid保存在cookie中,sessionid一定会被清除么?

不一定,这个需要服务器cookie的设置了,但总体而言,因安全性考量,最好不要缓存sessionid

4、cookie保存用户状态时需要保存sessionid么?

不需要,保存user_id或者其他token即可

5、cookie是如何发送到服务器的?

使用http请求头,浏览器进行了封装,但在一般网络编程时可以加上

6.cookie存放一些小而不敏感的数据,并且数据类型只能是字符串(json);session可以存放任意数据,java中session中可以存放任意对象

7.session必须依赖cookie实现

cookie值防范

操作:执行第三方的xss平台攻击登陆页面,若用户登录,即将用户的cookie值返回给攻击者

注意

  1. 攻击者可以通过xss技术获取你的cookie值
  2. cookie值,不能存放账号密码
  3. 不能凭cookie值存在,就断定账号登陆

防止xss的攻击

  1. 网站做些脚本拦截,并且若web网站使用富文本编辑器,针对用户输入引用脚本设置安全检验拦截
  2. 不能凭cookie值存在,就断定账号登陆,得设置更多检验,引入ip,cookie值加密ID和ip

查看cookie是否是httponly

可防止xss攻击

按F12,查看Application选项,子选项cookie

猜你喜欢

转载自blog.csdn.net/z2768557792/article/details/125246573