Web安全系列之CSRF攻击

CSRF漏洞攻击原理及防御方案 CSRF 攻击之所以能够成功,是因为黑客可以完全伪造用户的请求,该请求中所有的用户验证信息都是存在于 cookie 中,因此黑客可以在不知道这些验证信息的情况下直接利用用户自己的 cookie 来通过安全验证。但是,如果用户还未退出网站A,或者当时恰巧刚访问网站A不久,他的浏览器与网站A之间的session 尚未过期,浏览器的cookie 之中含有用户的认证信息。这时,悲剧发生了,这个url 请求就会得到响应,黑客就能以用户的权限修改密码,且用户毫不知情。在通常情况下,验证码能很好遏制CSRF攻击。 阅读详情

前面学习了 xss攻击的相关知识点,现在接着了解下 csrf攻击

什么是csrf攻击

csrf 全称跨站请求伪造(Cross-site request forgery),指的是攻击者携带网站cookie,冒充用户请求的攻击行为。

与 xss攻击 的区别

xss攻击主要指网站被攻击者利用漏洞恶意注入脚本并执行,是一种注入类攻击;csrf 描述的是攻击者携带cookie冒充用户的请求行为,它们属于两种不同维度上的分类。

可以预想的是,如果 xss攻击的执行脚本包含请求服务器的行为,其也会携带用户cookie达到冒充用户请求的行为,这时候也属于 csrf攻击,不过我们一般称这样的情况为 xsrf攻击。

经典的csrf攻击过程

  1. 用户C打开a网站,向服务器A发送请求进行登录

  2. 登陆验证通过,服务器返回cookieA

  3. cookieA被保存在浏览器中,生命周期默认为浏览器关闭

  4. 在浏览器未关闭的情况下(A域名的cookie还在),用户被攻击者诱导打开b网站

  5. 在网站b中,向服务器A发送跨域请求

  6. 在网站b的请求中浏览器为其自动携带上了服务器A的cookie

  7. 服务器A分析请求cookie得到此请求为用户C发起,正确处理网站b的请求

需要明确的是,浏览器设置和携带cookie是根据请求中服务器的域名来设置和获取的,而非请求所在网站域名。所以,用户首次在网站a请求服务器A得到的cookie对应服务器A的域名,在网站b中再次请求时也会携带服务器A域名下的cookie。其实仔细想想,如果cookie对应的是网站请求方的域名,那么一个网站如果请求多个服务器域名的话,那么它们之间的cookie很可能冲突,而且也无法通过cookie来做单点登陆了。

csrf的防范

  1. 验证 HTTP Referer 字段

HTTP 的 Referer 字段记录了该 HTTP 请求的来源(网址)。通过 HTTP Referer 可以判断请求所在的网址,进而拦截外站的非法请求。

使用这中方式防范 CSRF 的应当注意

  • 请求发起者可以设置不携带 Referer,重定向也不会携带 Referer

  • Referer 由浏览器携带,也可能由于浏览器的实现差异导致问题,或者因为浏览器安全漏洞导致被篡改。

  • 对于页面请求来说,要注意 Referer 可能是搜索引擎页面

关于 Referer 的知识可以参考阮一峰老师的HTTP Referer 教程

  1. 使用验证码校验

对于重要操作如支付来说,可以使用验证码验证用户身份。

  1. CSRF Token

CSRF 的本质在于盗用用户的 Cookie 信息然后作为用户凭证冒充用户的操作,如果在验证用户流程中多加个 CSRF Token 的验证,判断 Cookie 是否来自用户网站。那么第三网址发起的请求虽然携带 Cookie 但是获取不到用户网站的 CSRF Token,就可以在服务端设置拦截。

CSRF TOken 可以放置在请求参数中,也可以放在自定义 HTTP 头部字段。但是放在请求中可能由于 Get 请求被放置在 URL 中,再跳转第三方网站时被 Referer 携带泄露。所以推荐放在 HTTP 头部字段中

  1. 双重Cookie

csrf攻击的原因是请求会自动携带 Cookie,我们可以利用 JS 无法获取跨域 Cookie 的同源限制。发送请求时携带 Cookie 参数,服务器端校验开发者携带的 Cookie 和浏览器自动携带的 Cookie 是否一致来判断是否为正常请求。

双重 Cookie 有以下限制

  • Cookie 二级域名的跨域问题(Domain 设置为主域可能会由于其它子域被攻击而导致安全问题)

  • 无法设置 Cookie 的 HttpOnly

  • Cookie 导致请求数据加大,资源浪费

  1. 利用 Cookie 的新属性 SameSite

现代浏览器将 Cookie 的 SameSite 设置为 Lax 其实已经将大部分跨域请求都设置为不再携带 Cookie。当然如果设置为 Strict 就可以完全避免跨域携带 Cookie 了。具体详见做一个真正懂cookie的前端。

使用 SameSite 严格模式的缺点

  • 新标签重新打开也不携带 Cookie,需要用户重复登录

  • 二级域名无法共享 Cookie,需要用户重复登录

  1. 检测、监控

  • CSRF检测工具:CSRFTester

  • CSRF监控:代理层统一拦截监控

  1. 防止网站被利用

  • 严格管理所有的上传接口,防止任何预期之外的上传内容(例如HTML)。

  • 添加Header X-Content-Type-Options: nosniff 防止黑客上传HTML内容的资源(例如图片)被解析为网页。

  • 对于用户上传的图片,进行转存或者校验。不要直接使用用户填写的图片链接。

  • 当前用户打开其他用户填写的链接时,需告知风险(这也是很多论坛不允许直接在内容中发布外域链接的原因之一,不仅仅是为了用户留存,也有安全考虑)。

总结

CSRF攻击利用了浏览器跨域自动携带 Cookie 的特点,我们可以从不同维度防范与减少 CSRF攻击的风险。对于前端安全这块,我也是刚刚开始学习和研究,如果有错误的地方,欢迎大家指出。

01网络安全工程师(白帽子)企业级学习路线

第一阶段:安全基础(入门)

第二阶段:Web渗透(初级网安工程师)

第三阶段:进阶部分(中级网络安全工程师)

学习资源分享

SpringSecurity(十七)------CSRF 一.引入 从刚开始学习Spring Security时,在配置类中一直存在这样一行代码:http.csrf().disable();如果没有这行代码导致用户无法被认证。这行代码的含义是:关闭csrf防护。 二.什么是CSRF CSRF即跨站请求攻击。简单的说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点并运行一些操作(如发邮件,发消息,甚至财产操作(如转账和购买商品))。因为浏览器之前认证过,所以被访问的站点会绝点是这是真正的用户操作而去运行. 这就利用了web中用户身份认证验证 阅读详情

相关推荐

每日漏洞 | 跨站请求伪造

HTTP的无状态性,导致Web应用程序必须使用会话机制来识别用户。一旦与Web站点建立连接(访问、登录),用户通常会分配到一个Cookie,随后的请求,都会带上这个Cookie,这样Web站点就很容易分辨请求来自哪个用户,该修改哪个用户的数据。如果从第三方发起对当前站点的请求,该请求也会带上当前站点的Cookie。正是这是这个缺陷,导致了CSRF的产生,利用这个漏洞可以劫持用户执行非意愿的操作。

1133

CSRF漏洞原理攻击与防御(非常细)

CSRF (Cross-site request forgery,跨站请求伪造)也被称为One Click Attack或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装成受信任用户请求受信任的网站。简单的说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点并运行一些操作(如发邮件,发消息,甚至财产操作(如转账和购买商品))。

dzqxwzoe的博客 2937

2024年最新Web安全系列之CSRF攻击

CSRF攻击利用了浏览器跨域自动携带 Cookie 的特点,我们可以从不同维度防范与减少 CSRF攻击的风险。对于前端安全这块,我也是刚刚开始学习和研究,如果有错误的地方,欢迎大家指出。

2401_84239830的博客 416

【 安全】什么是CSRF攻击?如何避免?开发的时候怎么预防?

CSRF定义: 跨站请求伪造(英语:Cross-site request forgery)是一种对网站的恶意利用,也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。CSRF跨站点请求伪造(Cross—Site Request Forgery) 跟XSS攻击一样,存在巨大的危害性。

DreamSun的博客 4904

【愚公系列】2024年02月 《网络安全应急管理与技术实践》 014-网络安全应急技术与实践(Web层-CSRF跨站攻击)

CSRF(跨站请求伪造)是一种网络攻击方式。网站通常通过Cookie来识别用户,一旦用户通过身份验证,浏览器就会得到一个用于标识用户的Cookie。任何带有这个Cookie的操作都被认为是该用户所执行的。黑客可以利用这个Cookie向网站发送请求,网站会认为这是用户发送的请求,从而达到伪造请求的目的。这种攻击方式通常由第三方站点发起,因此称为“跨站”。

愚公智库 10万+

web安全(xss/csrf)简单攻击原理和防御方案(实战篇)

最近在学习node,就顺便写了web安全攻击的示例以及解决方案。

m0_71744044的博客 312

Web安全系列——CSRF攻击

CSRF 攻击是Web应用中最常见的攻击方式之一。CSRF攻击给网站身份验证、用户账户和个人隐私带来极大威胁。了解 CSRF 攻击的流程、原理与防御措施,是构建安全可靠的Web应用程序的必要条件。CSRF,全称是Cross-Site Request Forgery,中文名为跨站请求伪造。CSRF攻击是指指恶意攻击者利用用户已经登录了另一个网站的“身份”来伪造用户的请求(例如提交一个表单)。

Windeal 301

第1.1节 构网型 vs. 跟网型:根本区别与技术原理

构网型与跟网型变流器的本质区别在于控制哲学与等效模型。跟网型变流器采用"电压跟随,电流注入"策略,等效为受控电流源,依赖电网电压作为参考,在弱电网下存在稳定性问题。构网型变流器采用"自主同步,电压构建"策略,等效为受控电压源,能主动构建电压和频率,具备自主运行、黑启动和电网支撑能力。两者的核心差异体现在同步机制、电网依赖性、故障行为和系统支撑等方面。构网型变流器更适合高比例新能源、弱电网和微电网场景,是未来电力系统的重要发展方向。

技术工作者 1397

网络安全最新Web安全系列之CSRF攻击,2024年最新2024我的网络安全大厂面试之旅

csrf 全称跨站请求伪造(Cross-site request forgery),指的是攻击者携带网站cookie,冒充用户请求的攻击行为。

2301_82242326的博客 447

ThingsBoard - 设备接入

设备接入笔记

qq_53839898的博客 1455

关于42步进电机驱动——基于STM32 HAL库实现

我找了好多资料,好多关于42步进电机的都是文档,这么文档都需要积分,需要积分就算了内容还非常差,浪费时间和电脑的内存。关于大部分是基于Arduino和51去驱动的 42步进电机驱动硬件如下: 首先你要了解步进电机的驱动原理,我也不啰嗦了,请看这边博客: 二相四线,四相五线,四相六线步进电机接线及驱动方法 , 看完这篇你就知道驱动和接线的原理了。 起初我也为如何接线烦恼,因为有些博客在讲述这些问题的时候没有讲的很透彻。 方法如下: ①用万用表调到欧姆档,用其中一个表笔搭在一个引脚上,依次测其它.

Jodan132的博客 1万+

《白帽子讲web安全》读书笔记系列13:浏览器安全、XSS与CSRF攻击与防御

1、浏览器安全 1)同源策略:限制来自不同源的document或脚本,对当前document读取或设置某些属性。 影响源的因素:host、子域名、端口、协议 2)挂马:在网页中插入一段恶意代码,利用浏览器漏洞执行任意代码的攻击方式 沙箱:资源隔离类模块,让不可信任的代码运行在一定的环境中,限制其房屋隔离区之外的资源; 3)恶意网址拦截:黑名单拦截 2、跨站脚本攻击(XSS) Cr...

胡子的博客 360

Nestjs框架: 集成 Prisma

NestJS官方文档提供了两种数据库相关的内容:Techniques下的数据库板块和Recipes下的具体数据库集成方案。本文以Prisma为例,演示了如何集成Prisma到NestJS项目中。首先创建NestJS项目并安装Prisma,配置MySQL数据库连接。通过Prisma CLI初始化项目、定义数据模型并生成迁移文件。接着创建Prisma模块和服务,配置Prisma客户端连接数据库。最后在控制器中注入PrismaService实现数据查询。整个过程包含了Docker启动MySQL、Prisma模型定

Wang的专栏 1295

互联网并发与安全系列教程(06) - 常见的Web安全漏洞(CSRF攻击)

CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用也就是人们所知道的钓鱼网站。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XS...

阿甘兄 946

CXL协议-第三章 CXL事务层

CXL.io为I/O设备提供了一个非一致的负载/存储接口。图3-1显示了Flex总线分层层次结构中的位置。事务类型、事务分组格式、基于信用的流量控制、虚拟通道管理和事务排序规则遵循PCIe*定义,详情请参考PCIe基础规范的“事务层规范”章节。本章重点介绍了用于CXL.io的著名的PCIe操作模式或特性。

qq_41305217的博客 2769

半导体AMHS系统振动控制技术演进:从0.5G到超低振动的工艺革命

在半导体制造进入埃米级时代后,AMHS的振动控制能力将成为区分厂商技术等级的标尺。国内企业通过“弹性机械设计-混合主动控制-智能调度”的三重创新,正逐步突破0.2G阈值,支撑12英寸晶圆厂向3nm/2nm制程升级。未来,振动抑制不再仅是物流系统的性能参数,而是与光刻、刻蚀等核心工艺深度耦合的基础能力,这将重塑半导体设备产业的竞争格局。

m0_60674045的博客 1585

渗透测试CISP-PTE:CSRF

CSRF(Cross-Site Request Forgery)攻击,也称为“跨站请求伪造”,是一种常见的Web应用程序安全漏洞。该攻击利用了Web应用程序的信任机制,通过伪造用户的身份,迫使用户在他们不知情的情况下执行某些操作。攻击者通常通过在恶意网站上放置一个特殊的链接或图片,或者通过发送包含恶意代码的电子邮件等方式来发送特殊的请求。当用户点击这些链接或打开这些图片时,他们的浏览器会向目标网站发送请求,由于浏览器通常会自动发送保存的用户凭证,目标网站将会以为这是用户的合法请求,并执行相应的操作。

未知2066的博客 864

FPGA实现串口的任意字节数接收

基于FPGA的任意字节数(单字节、多字节)的串口(UART)接收,真的不来看看吗?

孤独的单刀 1万+

Web项目开发中常见安全问题防范

背景 随着计算机网络技术的快速发展,Web应用技术在各个领域都得到了广泛的应用,但是由于不法分子针对Web应用程序相关安全漏洞的挖掘利用及恶意攻击手段的层出不穷,而与此同时国内Web应用开发人员水平参差不齐,很多开发人员安全意识淡薄,导致Web应用存在各种各样的安全漏洞,使得Web应用程序在给用户提供简便、快捷服务的同时,用户不得不为其自身可能存在的Web安全问题而担忧。主要针对Web项目中常见的安全问题进行深入的研究与分析,并对提出的各种安全问题给出了一些有效的解决方案。 安全常见问题及防范 1.输入检查

codeSmart的博客 994

英伟达 Jetson AGX Thor 官方入门教程(二)CUDA、Docker、JetPack 设置

本文详细介绍了NVIDIA Jetson AGX Thor开发套件的安装与配置流程。主要内容包括:1) BSP安装的三种方法(Jetson ISO、SDK Manager和Linux刷写脚本)及其适用场景;2) Docker环境的完整配置步骤及测试方法;3) CUDA工具包的两种安装方式(容器化和原生安装)及其性能对比;4) JetPack SDK的安装选项。文章提供了详细的命令行操作指南和故障排除建议,帮助开发者快速搭建AI开发环境,充分发挥Jetson平台的硬件性能优势。

机器人控制与仿真应用 1737

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

web安全

XSS 跨脚本攻击 XSS(Cross Site Scripting)是跨站脚本攻击,为了区分CSS,所以缩写为XSS。XSS攻击方式是往Web页面插入恶意的 JavaScript 代码,当用户浏览网页的时候,插入的代码就是被执行,从而达到攻击的目的。 其中应用比较多的一个就是,在网页一些公用的交互区域。比如搜索的文本框,除了可以输入一些关键字,还可以输入一些 JavaScript 代码,一旦代码点击搜索,代码就会被执行,达到攻击的目的。如下例子 <script>alert(document.c

accumulate_的博客 285

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

web安全实践系列导航

作者:玄魂 安全技术区http://space.cnblogs.com/group/group_detail.aspx?gid=100566 web 安全实践(1)基于http的架构分析常用工具 Web安全实践(2)基于http的web架构剖析 web安全实践(3)再谈基于h...

weixin_33995481的博客 99

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Pikachu靶机系列之CSRF(Cross-Site Request Forgery)

我是啊锋,一个努力的学渣,作为一个刚进入安全大门的小白,我希望能把自己所学到的东西总结出来,分享到博客上,可以一起进步,一起交流,一起学习。 本节目录: * 概述 * CSRF(get) * CSRF(post) * CSRF(token) 前文: Pikachu靶机系列之安装环境 Pikachu靶机系列之暴力破解(一) Pikachu靶机系列之暴破(二):token防爆破 Pikachu靶机...

来到了学渣的博客 2532

【Web 安全】CSRF 攻击详解

文章目录一、CSRF 简介二、CSRF 原理三、CSRF 的危害四、CSRF 的攻击类型五、CSRF 的防御1. 验证 HTTP Referer 字段2. 在请求地址中添加 token 并验证3. 在 HTTP 头中自定义属性并验证参考链接 一、CSRF 简介 CSRF(Cross Site Request Forgery,跨站域请求伪造),也被称为 “One Click Attack” 或者 Session Riding,通常缩写为 CSRF 或者 XSRF 。 尽管听起来像跨站脚本(XSS),但它与X

weixin_44211968的博客 1万+
上一篇: web安全之有关反射型 XSS 的疑问
下一篇: 网络安全自学入门:(超详细)从入门到精通学习路线&规划,学完即可就业
披荆斩棘的GG
博客等级 码龄4年 1万+粉丝 2960原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值