CSRF 伪造跨域请求

news2024/9/27 7:21:13

文章目录

  • 一、什么是伪造跨域请求
  • 二、攻击方式
  • 三、防御措施
    • 1、检查Referer字段
    • 2、添加校验token

一、什么是伪造跨域请求

伪造跨域请求(英语:Cross-site request forgery),通常缩写为 CSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

二、攻击方式

由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去运行。

图例:
在这里插入图片描述

注意: 简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

三、防御措施

1、检查Referer字段

HTTP头中有一个Referer字段,这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时,通常来说,Referer字段应和请求的地址位于同一域名下。

图例:
在这里插入图片描述
注意: 虽然http协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其Referer字段的可能。

2、添加校验token

由于CSRF的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在cookie中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再运行CSRF攻击。

在这里插入图片描述
注意: 正常的访问时,客户端浏览器能够正确得到并传回这个伪随机数,而通过CSRF传来的欺骗性攻击中,攻击者无从事先得知这个伪随机数的值,服务端就会因为校验token的值为空或者错误,拒绝这个可疑请求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187069.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IntelliJ IDEA 2021.2(Community Edition)安装阿里编码规约插件,亲测有效

1.背景阿里巴巴java开发手册不断完善并出了很多版本到目前2023年1月截止,已经出了黄山版,在文章最后有参考资料可根据需要下载;随着企业对项目质量的要求,对开发代码也有了更高的要求和规范,借助阿里巴巴编码规约插件&…

redis geo 没有迁移手工插入数据

1、docker ps |grep redis2、docker exec -it qinghai-sc-xining-redis-single/eadd4cc4eefe bin\sh --进入redis容器[rootlocalhost ~]# [rootlocalhost ~]# [rootlocalhost ~]# [rootlocalhost ~]# docker ps|grep rediseadd4cc4eefe redis "docker-entrypoint.s…"…

python 气体扩散,在 Python中用数值模拟研究气体扩散

在 Python 中,可以使用数值模拟来研究气体扩散。 模拟气体扩散需要解决两个问题:流体动力学方程(如 Navier-Stokes 方程)和扩散方程。 文章目录Python 代码模拟气体扩散计算并显示气体浓度的均值和标准差研究气体扩展的高级方法Py…

Word控件Spire.Doc 【Table】教程(7): 如何在C#中用表格替换word文档中的文本

Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

【金三银四系列】之Java基础面试(2023版)

Java基础面试题 一: Java基础 1: 简单说说Java中对象如何拷贝? 一、浅拷贝clone()如果对象中的所有数据域都是数值或者基本类型,使用clone()即可满足需求,如:Person p new Person();Person…

30天自制操作系统(Mac版)读书笔记(day9)

day7和day8都是鼠标和32位的操作,看起来都是理论,先略过。 检测内存块数量 使用中断去检测内存,把这个当成一个函数调用吧。这里面di寄存器给的地址就是结果存在的内存位置。 ComputeMemory:mov ebx, 0mov di, MemChkBuf .loop:mov e…

linux安装vnc服务

1、 如操作系统是最小化安装,那么需要安装GNOME桌面,安装参考:https://blog.csdn.net/carefree2005/article/details/119417234 2、 安装vnc-server yum -y install tigervnc-server3、 复制配置文件模板,将无关的内容清除 cat…

图灵 | 计算机器与智能

【“计算机器与智能”选自《Mind》,no.2236(1950.10),P433-460。牛津大学出版社允许重印。刘西瑞、王汉琦 翻译】1. 模仿游戏我建议来考虑这个问题 :“机器能够思维吗?” 这可以从定义 “机 器” 和 “思维…

Docker数据目录迁移

背景在CentOS中安装了Docker,默认Docker Root目录是/var/lib/docker。但是该目录磁盘空间很有限,后期很容易导致系统盘满了,所以考虑迁移到更大磁盘目录下,比如下面的/fsc目录下。解决在Docker官方文档https://docs.docker.com/co…

excel查找定位:INDEX函数——精确制导导弹

一、认识INDEX函数Index函数:在给定的单元格区域中,返回特定行列交叉处单元格的值或引用。函数结构:index(单元格区域,行号,列号)区域,行号,列号,很像通过坐标瞄准打靶呀。就像下面动…

高阶数据结构之AVL树

文章目录回顾二叉搜索树AVL树在AVL树中插入新节点AVL树中的各种旋转右单旋左单旋左右双旋右左双旋验证是否是AVL树验证是否是二叉搜索树验证是否是平衡树总结AVL树回顾二叉搜索树 二叉搜索树的一些特点回顾: (1)每一个节点左树上所有节点的值都是…

vue多实例的骚操作,主要用于解决组件全局弹窗面板的问题。。。

1.问题背景 主要是自己写了一个组件库&#xff0c;其中涉及到弹出面板的组件遇到兼容性问题。 举个例子&#xff0c; 日期选择组件例如 DaterPicker组件 大概的代码如下&#xff08;省略了细节实现&#xff09; <template> <label>日期</label> <input …

一文详解PHP用流方式实现下载文件(附代码示例)

一淘模板给大家带来了关于PHP的相关知识&#xff0c;其中主要介绍了在PHP中怎么使用流方式来实现下载文件的&#xff0c;下面一起来看一下&#xff0c;希望对大家有帮助。 PHP 中使用流方式下载文件 在 PHP 中&#xff0c;可以使用 fopen() 函数打开一个远程文件&#xff0c;并…

Unity使用本地UPM包的实现方式

实现1&#xff1a;项目根路径实现优点&#xff1a;1.不必有额外操作2.本地包随项目版控&#xff0c;不会丢失包产生错误3.按需升级包缺点&#xff1a;1.包的修改随项目版控&#xff0c;增加日志冗余2.不利于包全局管理建议使用场景多人合作&#xff0c;开发底子较弱的团队。实现…

今年春节,全国物流很稳!

我叫张雄伟&#xff0c;是腾讯安全的一位交付工程师。我和团队的主要工作&#xff0c;是物流行业重点客户的安全防御项目管理工作。近两年&#xff0c;我们开始向顺丰、极兔等多家大型物流公司提供安全产品与服务。在双十一、618等全民购物节、春节等电商旺季&#xff0c;我们和…

百华鞋业开工大吉|起航新征程,扬帆再出发

爆竹声声迎鸿运&#xff0c;开工大吉启新程。2023年农历正月初六&#xff0c;山东百华鞋业有限公司迎来节后开工吉日。百华的家人们迅速集结工作岗位&#xff0c;以饱满的精神状态&#xff0c;按下工作复位键&#xff0c;俯身蹬地冲起跑&#xff0c;努力奋斗再出发&#xff01;…

史上最全测试开发工具推荐(含自动化、性能、稳定性、抓包)

一、UI自动化测试工具 1. uiautomator2 介绍: openatx开源的ui自动化工具&#xff0c;支持android和ios。主要面向的编程语言是python&#xff0c;api设计简洁易用&#xff0c;在开源社区也是很受欢迎。 原理图&#xff1a; 安装&#xff1a; pip install --upgrade --pre…

【C语言】-扫雷-简单版

前言&#xff1a;感谢各位朋友的捧场&#xff0c;这里给大家分享的是扫雷游戏的简单实现 &#xff08;PS&#xff1a;这里简单是指只实现了游戏的基础功能和主要流程&#xff0c;由于当前本人技术知识尚薄弱&#xff0c;相关的优化会通过后续的学习进行更新&#xff09; 《扫雷…

session,cookie和token的区别

session&#xff0c;cookie和token究竟是什么简述cookie&#xff0c;session&#xff0c;token作为面试必问题&#xff0c;很多同学能答个大概&#xff0c;但是又迷糊不清&#xff0c;希望本篇文章对大家有所帮助http是一个无状态协议什么是无状态呢&#xff1f;就是说这一次请…

【Java Swing】Java组件及事件处理

图形用户接口1、Swing概述2、Swing顶级容器3、布局管理器4、事件处理5、Swing常用组件1、Swing概述 Swing是一种轻量级的组件&#xff0c;它由Java语言开发&#xff0c;可以通过使用简洁的代码、灵活的功能和模块化的组件来创建优雅的用户界面Swing组建的继承关系 2、Swing顶…