首页 > 其他分享 >token与cookie的区别?(token是如何避免CSRF攻击?)

token与cookie的区别?(token是如何避免CSRF攻击?)

时间:2022-10-10 18:45:54浏览次数:66  
标签:HTTP 请求 token cookie CSRF 浏览器

链接:https://blog.csdn.net/m0_37138074/article/details/125628352

一、token与cookie的区别?

1.1、cookie是浏览器用来存储本地信息的文件(4KB);token(令牌)是由服务器按一定算法生成的密令。

1.2、服务器生成的用户识别信息必将响应给浏览器的cookie中存储;token可以由前端指定存放到localStorage、sessionStorage或cookie中。

1.3、每次浏览器发起HTTP请求都会自动携带cookie内容一起发送给服务器;token严格来说只是程序员定义的字符串,没有任何自主功能,所以浏览器发起的HTTP请求不会自动携带token字符串。

1.4、cookie在用户登出后会注销;token不会,因为是一个字符串,但可以手动增加相关操作去实现这个功能。

二、token是如何避免CSRF攻击的?

2.1、CSRF(跨域请求伪造)的攻击特点是:需要用户自己点击恶意网站的隐藏HTTP请求链接,这个发出去的HTTP请求会自动的携带上你的cookie信息给服务器,于是完成了请求伪造攻击。(就是恶意网站利用了cookie会被HTTP请求自动添加的特性加以利用攻击)

2.2、token因为是自定义字符串,所以HTTP请求不会自动携带它,CSRF也就无法得手了(即使用户点击了恶意网站的请求也无法被拿走token),之所以说token天然防CSRF,但也不是绝对的,前提是不把token存储到浏览器的cookie里。

2.3、【补充】Ajax跨域请求不会自动携带cookie,源自浏览器的ajax同源策略,要想ajax自动携带cookie,需要在服务端进行配置。

标签:HTTP,请求,token,cookie,CSRF,浏览器
From: https://www.cnblogs.com/stepforeward/p/16776778.html

相关文章

  • 三步完成所有线程使用同一Cookie设置
    步骤1:Jmeter配置文件修改设置Jmeter安装目录bin/jmeter.properties的配置文件找到CookieManager.save.cookies和CookieManager.allow_variable_cookies变量将代码注释......
  • 智慧树(知到)习惯分问答生成器结合ai改写 需要自己的cookie,我找了半天,也没找到完全免费
    仅作用于问答详情界面,未设置自动发布 //==UserScript==//@nameWhee1-智慧树(知到)习惯分问答生成器结合ai改写//@namespacehttp://tampermonkey.net/......
  • cookie session token 对比
    http是无状态,也就是说每次的http请求都是独立的。请求和响应无法维护,都是一次性的,比说在blog上留言发布都需要用户信息的,我们要存储登录用户的状态,**存储方式**1.......
  • 49、django工程(cookie+session)
    49.1、介绍:1、cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生。cookie的工作原理是,由服务器产......
  • Django2.0——cookie、session的简单处理
    1.cookie设置ifuserResultanduserResult.is_active: response=redirect(to='/') response.set_cookie("username",username,max_age=3600) context["username"]=use......
  • Cookie——基本使用
    Cookie基本使用    Cookie原理Cookie使用细节......
  • Antlr词法分析之技巧——修改某个token
    在上一次的博客Antlr词法分析之技巧——保留空白符中,我们演示了如何通过词法分析、语法分析解析出SQL中的所有表名,然后给没有带库名前缀的表名添加库名前缀。这一次我们......
  • 40.TokenAuthentication认证
    TokenAuthentication认证介绍TokenAuthentication是一种简单的基于令牌的HTTP认证适用于CS架构,例如普通的桌面应用程序或移动客户端 TokenAuthentication认证使用......
  • C# 写入Cookies和读取Cookies
    写入CookiesstringuserId=dt.Rows[0]["user_no"].ToString();stringuserName=dt.Rows[0]["user_name"].ToString();HttpCookiecookie=newHttpCookie("UserInF......
  • 肖sir__python中获取token方法
    一、从响应头中获取token1、从登录接口的响应头中获取token值,存储在变量token中,方便后续接口请求的时候使用二、从响应体中获取token(1)token存在于单层字典数据中(2)token......