CSRF 攻击

概述

CSRF(Cross-site request forgery,跨站请求伪造)。

它是指攻击者利用了用户的身份信息,执行了用户非本意的操作。

它首先引导用户访问一个危险网站,当用户访问网站后,网站会发送请求到被攻击的站点,这次请求会携带用户的cookie发送,因此就利用了用户的身份信息完成攻击。

image.png

防御方式

image.png

SameSite

SameSite 是一个与 HTTP 状态码和响应头相关的属性,用于定义浏览器如何处理跨站点请求。这个属性主要用于防止跨站点请求伪造(CSRF,Cross-Site Request Forgery)攻击,它允许服务器要求某些类型的 cookie 在跨站点请求中不被发送。

以下是 SameSite 属性的几种取值及其含义:

  1. Strict: 这种模式下,cookie 将不会被包含在任何跨站点请求中。也就是说,只有在请求的域与设置 cookie 的域完全一致时,cookie 才会被发送。

  2. Lax: 这种模式下,cookie 将被包含在顶层导航请求中,但不会在跨站点请求中被发送。例如,如果你从一个网站链接到另一个网站,浏览器会发送 cookie,但如果你尝试通过 JavaScript 发起一个跨站点请求,cookie 则不会被发送。get 请求会携带 cookie,但是 post 请求不携带。

  3. None: 这种模式下,cookie 将被包含在跨站点请求中。如果你想让 cookie 在跨站点请求中被发送,就需要将 SameSite 设置为 None,并且同时设置 Secure 属性,以确保 cookie 只在 HTTPS 上传输。

从 Chrome 80 开始,默认的 SameSite 变更为 SameSite=Lax,这意味着如果你的服务器没有明确设置 SameSite 属性,那么浏览器将默认以 Lax 模式处理 cookie。

为了确保跨站点请求能够正确地携带 cookie,你需要:

  • 设置 SameSite=None
  • 设置 Secure 属性,确保 cookie 只在 HTTPS 上传输。

示例代码:

Set-Cookie: key=value; SameSite=None; Secure

使用 CSRF Token

CSRF Token 是一种常见的防御机制,它要求每个请求都必须包含一个由服务器生成的、随机的、唯一的 token。服务器在处理请求时会验证这个 token 是否有效。具体步骤如下:

  1. 生成 Token: 当用户登录后,服务器生成一个 CSRF Token 并将其存储在服务器端的会话中。
  2. 发送 Token: 服务器将 Token 发送给客户端,并要求客户端在后续的请求中包含这个 Token。
  3. 验证 Token: 当客户端发起请求时,服务器会检查请求中是否包含 Token,并且验证 Token 是否与服务器端存储的 Token 匹配。

这种方法的关键在于,攻击者无法预测 Token 的值,因此即使他们能够诱导用户点击链接或提交表单,由于 Token 不匹配,请求也会被服务器拒绝。

image.png

比如这里我打开某网站,他就是使用的 csrfToken。

image.png

什么是CSRF?为什么CSRF Token写在COOKIE里面?_csrf cookie-CSDN博客

使用 Referer 检查

Referer 是 HTTP 请求头中的一个字段,用于指示请求是从哪个页面发起的。服务器可以通过检查 Referer 来防御 CSRF 攻击:

  1. 检查 Referer: 服务器在处理请求时,检查请求的 Referer 头部,确认请求是否来自可信的来源。
  2. 验证来源: 如果 Referer 头部指向的是攻击者的域名,服务器可以拒绝处理请求。

然而,这种方法有几个局限性:

  • 用户可能禁用了 Referer 头部,或者浏览器设置可能导致 Referer 头部不被发送。
  • 攻击者可以构造请求,使其 Referer 头部指向合法的来源。
  • 不能访问 base64 编码

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

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

相关文章

拼多多携手中国农业大学,投建陕西佛坪山茱萸科技小院

5月16日下午,中国农业大学陕西佛坪山茱萸科技小院在佛坪县银厂沟村揭牌。佛坪县素有“中国山茱萸之乡”的美誉,是全国山茱萸三大基地之一,当地山茱萸是国家地理标志产品,山茱萸肉产量位居全国第二。 为充分发挥佛坪县得天独厚的山…

局部放电试验变频电源

局部放电试验中的变频电源设备 局部放电试验变频电源是一种专为电力设备的局部放电检测设计的高性能电源系统。在电力设备的运行和维护过程中,局部放电测试用于探测潜在的绝缘缺陷,防止它们进一步恶化导致设备损坏。传统的局部放电试验通常使用交流电源&…

jmeter之测试计划

一、测试计划作用 测试计划是jmeter的默认控件所有线程组都是测试计划的下级控件测试计划可以配置用户自定义的变量测试计划可以配置线程组的串行或并行 二、查看界面 名称:可以修改自定义的名称注释:解释测试计划是用来做什么的用户自定义的变量&…

Sentinel重要的前置知识

文章目录 1、雪崩问题及解决方案1.1、雪崩问题1.2、超时处理1.3、仓壁模式1.4、断路器1.5、限流1.6、总结 2、服务保护技术对比3、Sentinel介绍和安装3.1、初识Sentinel3.2、安装Sentinel 4、微服务整合Sentinel ​🍃作者介绍:双非本科大三网络工程专业在…

PX4使用yolo仿真环境搭建

文章目录 前言一、修改机架sdf文件二、安装yolo三、运行 前言 ubuntu20.04 PX4 1.13.3 已配置好PX4 ROS gazebo环境 一、修改机架sdf文件 将双目相机加到仿真的iris机架上 修改下图文件 添加如下&#xff1a; <include><uri>model://stereo_camera</uri>…

使用 CapSolver API 服务解决 Arkose Labs FunCaptcha 验证码

使用 CapSolver API 服务解决 Arkose Labs FunCaptcha 验证码 FunCaptcha 以其复杂的图像验证而闻名&#xff0c;对自动化系统构成了巨大的挑战。CapSolver 的 API 服务利用先进的 AI 技术轻松应对和解决 FunCaptcha 挑战。本指南探讨了 CapSolver 如何实现无缝自动化&#xff…

STM32笔记-AD模数转换

目录 一、ADC介绍 二、ADC主要特征 三、ADC框图 1. ​​​​ 外部触发转换 ​ 2. 转换模式 3. 输入通道 4. 逻辑框图 四、校准 五、数据对齐 六、AD转换步骤 七、AD_Init(单通道AD转换)初始化函数配置 DMA: adc_dma_mode_enable(ADC0); 这段代码是用来使能ADC的DMA&a…

ts 字符串不能做索引异常提示 type because expression of type ‘string‘

Element implicitly has an any type because expression of type string cant be used to index type 例子 let a{b:"1",c:"1" } var b"b"; let ca[b] let ca[b]就会爆这个错误&#xff0c;因为在编译器看来b是一个未知的东西&#xff0c;它不…

什么是创造力?如何判断自己的创造力?

创造力&#xff0c;主要表现为创新思想、发现和创造新事物的能力&#xff0c;是知识&#xff0c;智力和能力的综合能力&#xff0c;尤其是在职业发展方面&#xff0c;创造力具有重要的意义&#xff0c;企业的核心竞争力就来源于创造力&#xff0c;这就需要具有创造力的员工来推…

【QGIS入门实战精品教程】13.1:导入带地理标签的航测照片

文章目录 一、数据准备二、导入带地理标签的航测照片三、导出点位shp四、生成航线一、数据准备 本实验数据位于13.1:导入带地理标签的航测照片.rar中,如下: 查看照片及相机参数信息,航测照片都带有相机参数、部分POS及地理坐标信息,如下所示: 二、导入带地理标签的航测照…

YoloV8改进策略:蒸馏改进|CWDLoss|使用蒸馏模型实现YoloV8无损涨点|特征蒸馏

摘要 在本文中&#xff0c;我们成功应用蒸馏策略以实现YoloV8小模型的无损性能提升。我们采用了CWDLoss作为蒸馏方法的核心&#xff0c;通过对比在线和离线两种蒸馏方式&#xff0c;我们发现离线蒸馏在效果上更为出色。因此&#xff0c;为了方便广大读者和研究者应用&#xff…

大语言模型PEFT

目录 一、PEFT的关键概念和方法 部分参数微调 概念 方法 优势 适配器&#xff08;Adapters&#xff09; 方法 优势 低秩分解&#xff08;Low-rank Factorization&#xff09; 方法 优势 差分微调&#xff08;Delta Tuning&#xff09; 方法 优势 多任务学习&…

政策及需求多因素驱动下 中国适老化改造市场空间大

政策及需求多因素驱动下 中国适老化改造市场空间大 适老化改造是为了提高老年人居住环境的舒适度和安全性&#xff0c;满足老年人居住需求进行的建筑改造&#xff0c;根据住房和城乡建设部城市建设司发布的《城市居家适老化改造指导手册》可以将适老化改造分为基础性改造和提升…

【linux】新增磁盘的使用

查看硬盘和分区信息 【Linux】lsblk 命令使用-CSDN博客 lsblk 根据您提供的lsblk命令输出&#xff0c;我们可以看到系统中的块设备及其分区信息。以下是对每个设备的解释&#xff1a; vda&#xff1a;这是一个大小为40G的磁盘设备。 vda1&#xff1a;这是vda磁盘的第一个分区…

Python学习---基于TCP协议的网络通信程序案例

TCP简介&#xff1a; ●TCP 面向连接、可靠的、基于字节流的传输控制协议 ●TCP的特点 ○面向连接 ○可靠传输 ■应答机制 ■超时重传 ■错误校验 ■流量管控 ●TCP通信模型 TCP严格区分客户…

智慧展厅设计的难点有哪些

1、运用先进的展示技术 将全息影像、三维投影、虚拟现实、人机互动等技术做做完美衔接&#xff0c;把展厅的内容展示做到丰富多彩&#xff0c;从而让展厅富有科技感和艺术性。 2、内容要生动有趣 从而更好地吸引参观者。展厅设计师要与客户有良好深入的沟通&#xff0c;搜集与整…

TP6 模型批量插入获取插入的自增ID

在TP框架中&#xff0c;数据插入 添加一条数据,返回添加成功的条数 $data [foo > bar, bar > foo]; Db::name(user)->save($data); // 或者 Db::name(user)->insert($data); 批量添加 $data [[foo > bar, bar > foo],[foo > bar1, bar > foo1],[…

无人机的相关基础知识(看不懂了 待定以后继续补充)

视频&#xff1a; 【浙江大学】浙大博导带你从0制作无人机_哔哩哔哩_bilibili 什么是无人飞行器 无人机自主导航构架 IMU&#xff08;加速度计和陀螺仪&#xff09;&#xff0c;可以测出当前的 加速度和角速度 这俩信息再去融合外部传感器 &#xff08;例如视觉传感器或者雷…

YoloV9实战与改进——专栏目录

摘要 &#x1f525;&#x1f680;本专栏教你如何嗨翻Yolov9&#xff01;&#x1f680;&#x1f525; &#x1f680;炸裂升级&#xff1a;嗨&#xff0c;小伙伴们&#xff01;这里有一波Yolov9的升级大招&#xff0c;带你领略最新论文的精华&#xff01;&#x1f4a5; 什么注意…

lenovo联想小新Pro 16 APH8 2023款(83AR)笔记本电脑原装出厂Windows11系统镜像安装包下载

恢复出厂开箱状态OEM预装win11系统&#xff0c;自带恢复重置初始化还原功能 下载链接&#xff1a;https://pan.baidu.com/s/1n_mPM4ZrLPrmXpCTukuyCQ?pwdmnwj 提取码&#xff1a;mnwj 联想原装系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office办公软件、联想…