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

vscode快捷键mac快捷键

vscode快捷键 在 Visual Studio Code 中,可以使用「Ctrl D」快捷键来选中相同内容。还可以使用以下快捷键来操作: 向上/下选择相同内容 Alt ↑/↓ 选择所有相同内容 Ctrl Shift L mac中则是commandshiftL VSCode删除整行快捷键 CtrlShiftK mac中则…

局部放电试验变频电源

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

with关键字

在 Python 中,with 是一个关键字,用于引入一个上下文管理器(context manager)。上下文管理器是一种特殊的对象,它允许你以一种干净、结构化的方式执行一组特定的操作,通常包括设置和清理资源。 with 语句通…

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>…

用nn.Sequential实现图像的数据增强(augmentations)

代码example: import torch import torch.nn as nn# 定义一些增强操作&#xff0c;例如随机水平翻转和归一化 augmentations nn.Sequential(nn.RandomHorizontalFlip(),nn.Normalize(mean[0.5], std[0.5]) )# 创建一个示例 tensor candidate torch.randn(1, 3, 224, 224) #…

QWRT改AP模式 自动获取IP

关闭&#xff08;禁用&#xff09;WAN 和 WAN6接口修改LAN接口 IP地址 改为上级路由的网段&#xff0c;如主路由器IP192.168.2.1&#xff0c;那么就设置为192.168.2.2&#xff08;不要冲突了&#xff09;IPv4 网关 改为上级路由的IP地址&#xff0c;如主路由器IP192.168.2.1&am…

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

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

什么是html

HTML&#xff08;HyperText Markup Language&#xff0c;超文本标记语言&#xff09;是一种用于创建网页的标准标记语言。它描述了一个网站的结构骨架&#xff0c;使得浏览器能够展示具有特定格式的文本、链接、图片和其他内容。HTML 文档由一系列的元素构成&#xff0c;这些元…

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;这就需要具有创造力的员工来推…

ArduPilot开源飞控之MAVProxy深入研读系列 - 1基本操作

ArduPilot开源飞控之MAVProxy深入研读系列 - 1基本操作 1. 源由2. 基本操作2.1 二进制安装2.2 源代码安装2.3 硬链接飞控2.4 软连接飞控 3. 启动参数3.1 输入3.2 输出3.3 日志3.4 交互3.5 其他 4. 参考资料 1. 源由 玩开源&#xff0c;就尽量不要用Windows/Android/iOS/MaxOS什…

【前端每日基础】day30

iframe的优点和缺点 &#xff1f; 优点&#xff1a; 内容隔离&#xff1a; < iframe> 允许将另一个 HTML 文档嵌入到当前页面中&#xff0c;并在一个独立的环境中展示。这种隔离性可以防止嵌入的内容对主页面的样式和功能造成影响。 模块化&#xff1a; < iframe>…

【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;根据住房和城乡建设部城市建设司发布的《城市居家适老化改造指导手册》可以将适老化改造分为基础性改造和提升…