Cross-Site-Request-Forgery

一、CSRF是什么?

CSRF(Cross-site request forgery)是一种网络攻击方法,中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。

二、CSRF可以做什么?

攻击者利用用户已经认证的身份在第三方站点上进行恶意操作。攻击者诱使用户访问一个包含恶意请求的网页,当用户浏览该网页时,该请求会利用用户在目标网站上的认证信息(如Cookies)来伪装用户进行操作。例如:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。

例如,我在自己的文章里放一段代码,接口假设是关注的GET接口

<img style="width:0;" src="https://mp-action.csdn.net/interact/wrapper/pc/fans/v1/api/follow?username=m0_37820751   />

那么如果你登录了这个平台,访问这篇文章就会自动关注我。

三、CSRF漏洞现状

CSRF这种攻击方式早在2000年就被国外的安全人员提出。然而,在国内直到2006年才开始引起关注。在2008年,国内外多个大型社区和互动网站相继曝出了CSRF漏洞,其中包括纽约时报(NYTimes.com)、Metafilter(一个大型的博客网站)、YouTube和百度HI等。尽管如此,现在仍有许多网站对CSRF攻击没有足够的防范措施,这也导致安全领域将CSRF称为“沉睡的巨人”。

四、CSRF的原理

在这里插入图片描述

CSRF攻击的实施通常需要受害者依次完成下面两个步骤:

  • 登录受信任网站A,并在本地生成Cookie
  • 在不登出A的情况下,访问危险网站B

看到这里,你也许会说:“如果我不满足以上两个条件中的一个,我就不会受到CSRF的攻击”。是的,确实如此,但你不能保证以下情况不会发生:

  • 你可能登录一个网站后,在另一个标签页中继续访问其他网站。
  • 关闭浏览器并不会立即使本地的Cookie过期,你的上次会话可能仍然有效。尽管实际上关闭浏览器并不等同于退出登录/结束会话,但大多数人错误地认为关闭浏览器就代表退出登录/结束会话了。
  • 攻击网站可能是一个存在其他漏洞的受信任网站,这使得攻击更具欺骗性

五、解决CSRF攻击

  1. 验证HTTP Referer字段:服务器可以验证请求的HTTP头部“Referer”字段,以确认请求是否来自于信任的域名。
  2. 使用Anti-CSRF Token:服务器生成一个唯一的token,并在客户端的会话中存储这个token。每一次用户提交请求时都需要携带这个token,服务器接收到请求后验证token的有效性。
  3. 双重Cookies验证:服务器检查请求中的自定义Cookies字段,与请求本身携带的Cookies进行对比,如果不匹配,则拒绝请求。
  4. 自定义请求头:利用浏览器的同源策略,普通网站无法读取或设置自定义的HTTP请求头,因此可以要求所有敏感操作必须通过含有自定义请求头的Ajax请求提交。
  5. 利用SameSite Cookie属性:设置Cookies的SameSite属性,可以限制Cookies不随跨站请求发送,减少CSRF攻击的风险。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

oh-my-zsh nvm command not found

如果你在使用 oh-my-zsh 并且在终端输入 nvm 命令时提示 "command not found"&#xff0c;这可能是因为 oh-my-zsh 没有配置 nvm 插件导致的。 a、确保你已经在系统中安装了 nvm。如果没有安装&#xff0c;请参考 nvm 的文档安装。 b、打开 oh-my-zsh 的配置文件&a…

故障诊断 | 基于FFT频谱与小波时频图的双流CNN轴承故障诊断模型(matlab +python)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 故障诊断 | 基于FFT频谱与小波时频图的双流CNN轴承故障诊断模型&#xff08;matlab python&#xff09; 基于FFT频谱与小波时频图的双流CNN轴承故障诊断模型 特征拼接 python&#xff08;pytorch&#xff09; 基于2D-…

Flutter桌面软件开发中实现本地通知

Flutter桌面软件开发中实现本地通知可以使用local_notifier &#xff0c;local_notifier这个插件允许 Flutter 桌面 应用显示本地通知。 Flutter桌面软件开发中实现本地通知 第一步安装依赖 dependencies:local_notifier: ^0.1.5 Flutter桌面软件开发中实现本地通知 第二步配…

vue3 响应式api中特殊的api

系列文章目录 TypeScript 从入门到进阶专栏 文章目录 系列文章目录一、shallowRef()二、triggerRef()三、customRef()四、shallowReactive()五、shallowReadonly()六、toRaw()七、markRaw()八、effectScope()九、getCurrentScope() 一、shallowRef() shallowRef()是一个新的响…

Docker 基础

文章目录 1.Docker概述2.Docker安装3.Docker与虚拟机VM4.Docker命令1.帮助命令2.镜像命令1.images2.search3.pull4.rmi 3.容器命令1.run2.ps3.rm4.start5.stop6.restart7.kill 4.常用其他命令1.后台启动容器2.查看日志&#xff08;logs&#xff09;3.查看进程信息&#xff08;t…

双十一的祈祷【算法赛】

问题描述 双十一&#xff0c;不仅是购物狂欢节&#xff0c;更有 "光棍节" 之称。这源于 11:1111:11 由四个 11 构成&#xff0c;象征着单身。 作为大学生的小蓝也想经历甜甜的校园恋爱&#xff0c;于是他找到了爱神丘比特&#xff0c;向他祈祷能为自己带来一段邂逅…

如何将 element-ui 中的 el-select 默认展开

<el-form-item label"藕粉桂花糖糕" prop"state" required><el-selectref"mySelect"v-model"form.state"style"width: 280px"placeholder"请选择"><el-option label"藕粉" :value"…

摆动排序 II

题目链接 摆动排序 II 题目描述 注意点 将数组重新排列成 nums[0] < nums[1] > nums[2] < nums[3]… 的顺序题目数据保证&#xff0c;对于给定的输入 nums &#xff0c;总能产生满足题目要求的结果用 O(n) 时间复杂度和 / 或原地 O(1) 额外空间来实现 解答思路 如…

第九节HarmonyOS 常用基础组件11-TextPicker

1、描述 滑动选择文本内容的组件。 2、接口 TextPicker(options?: {range: string[]|Resource, selected?: number, value?: string}) 3、参数 参数名称 参数类型 必填 描述 range string[]|Resource 是 选择器的数据。 selected number 否 设置默认选中项在…

Linux系统使用超详细(八)~磁盘管理

目录 一、认识磁盘 二、磁盘运行机制 三、磁盘检查 3.1查找设备名称和分区号 3.1.1使用lsblk命令&#xff1a; 3.1.2使用fdisk命令&#xff1a; 3.1.3使用blkid命令&#xff1a; 3.2检查方向 3.2.1文件系统完整性&#xff1a; 3.2.2磁盘健康状态&#xff1a; 3.2.3磁…

【AI视野·今日NLP 自然语言处理论文速览 第七十期】Thu, 4 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Thu, 4 Jan 2024 Totally 29 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Multilingual Instruction Tuning With Just a Pinch of Multilinguality Authors Uri Shaham, Jonathan Herzi…

概念解析 | ISTA:稀疏信号恢复的优雅算法

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:迭代收缩阈值算法(ISTA)。 概念解析 | ISTA:稀疏信号恢复的优雅算法 https://arxiv.org/pdf/math/0307152.pdf 1. 背景介绍 在信号处理、机器学习等领域,我们常常需要从含有噪声…

【leetcode】力扣热门之反转链表【简单难度】

题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 用例 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 输入&#xff1a;head [1,2] 输出&#xff1a;[2,1] 输入&#xff1a;head [] 输出&#xff1a;[…

海康威视摄像头+服务器+录像机配置校园围墙安全侦测区域入侵侦测+越界侦测

一、适用场景 1、校园内&#xff0c;防止课外时间翻越围墙到校外、从校外翻越围墙到校内&#xff1b; 2、通过服务器摄像头的侦测功能及时抓图保存&#xff0c;为不安全因素提供数字化依据&#xff1b; 3、网络录像机保存监控视频&#xff0c;服务器保存抓拍到的入侵与越界&am…

目标检测COCO数据集与评价体系mAP

1.mAP 2.IoU IoU也就是交并比&#xff0c;也称为 Jaccard 指数&#xff0c;用于计算真实边界框与预测边界框之间的重叠程度。它是真值框与预测边界框的交集和并集之间的比值。Ground Truth边界框是测试集中手工标记的边界框&#xff0c;用于指定目标图像的位置以及预测的边界框…

【AI视野·今日NLP 自然语言处理论文速览 第六十九期】Wed, 3 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 3 Jan 2024 Totally 24 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers An Autoregressive Text-to-Graph Framework for Joint Entity and Relation Extraction Authors Zaratiana Ur…

鸿蒙系列--组件介绍之Video

接口 Video(value: {src?: string | Resource, currentProgressRate?: number | string |PlaybackSpeed, previewUri?: string |PixelMap | Resource, controller?: VideoController}) 参数&#xff1a; src&#xff1a;视频播放源的路径。支持本地路径和网络路径currentP…

网络安全保险发展起始阶段的挑战及应对措施

文章目录 前言一、网络安全保险的有序发展二、当前我国网络安全保险发展的初期态势&#xff08;一&#xff09;网络安全风险类型&#xff08;二&#xff09;网络安全保险的作用&#xff08;三&#xff09;与外国网络安全保费的规模对比 三、我国网络安全保险发展初期面临的挑战…

MYSQL双主节点–更换ip

MYSQL双主节点–更换ip 一、更换双主节点ip 1.停止mysql服务 #安装了supervisor supervisorctl stop mysql #未安装 systemctl stop mysqld2.修改网卡配置信息 注&#xff1a;ens33是网卡名称&#xff0c;可能网卡不叫ens33 vi /etc/sysconfig/network-scripts/ifcfg-ens333…

ConcurrentHashMap的原理分析学习

ConcurrentHashMap 的初步使用及场景 CHM 的使用 ConcurrentHashMap 是 J.U.C 包里面提供的一个线程安全并且高效的 HashMap&#xff0c;所以ConcurrentHashMap 在并发编程的场景中使用的频率比较高&#xff0c;那么这一节课我们就从ConcurrentHashMap 的使用上以及源码层面来…