CORS与CSRF

CORS和CSRF--学习笔记 一、CORS 和 CSRF 区别 两者概念完全不同,另外常常我们也会看到 XSS ,这里一起介绍: CORS : Cross Origin Resourse-Sharing 跨站资源共享 CSRF : Cross-Site Request Forgery 跨站请求伪造 XSS : Cross Site Scrit 跨站脚本攻击(为与 CSS 区别,所以在安全领域叫 XSS) 二、CORS 1、概念 跨来源资源共享(CORS),亦译为跨域资源共享,是一份浏览器技术的规范,提供了 Web服 阅读详情

本文首发于我的Github博客
本篇文章介绍了CORS和CSRF的概念(作者前几天在和带佬们聊天的时候把两个概念搞混了,所以才想要了解),简单来说:

  • CORS(Cross Origin Resource Sharing)跨域资源分享 是一种机制,通过在HTTP响应头中加入特定字段限制不同域的资源请求
  • CSRF(Cross Site Request Forgery)跨站请求伪造 是一种web攻击手段,通过向服务器发送伪造请求,进行恶意行为的攻击手段

CORS(Cross Origin Resource Sharing)跨域资源分享

什么是域与跨域

在讨论跨域之前,我们需要知道域是什么

域是(scheme, host, port)三元组,也就是协议+主机+端口

只要上述三者中有任何一个不同,就说是两个不同的域

在web app中,经常会有一个站点请求另一个站点的资源的情况,比如

  • 前端App运行在localhost:3000上
  • 后端App运行在localhost:8080上
  • 前端调用axios向后端发起API请求,也就是localhost:3000到localhost:8080的请求
  • 这样的请求就是跨域请求

CORS(跨域资源分享)的目的和实现思想

因为服务器方不希望随便一个什么域都能够想自己发送请求,或者通过请求获取资源,所以想出了CORS机制进行限制

首先我们细数一下一个web app进行请求的过程:

  • app发起请求
  • 浏览器收到app发起的请求,将真正的网络请求发到另外的站点上
  • 浏览器收到站点的响应
  • 浏览器将响应交给app处理

CORS的实现思想就是在请求过程中做手脚,达到限制站点发送请求或者接受响应的目的

CORS对于普通HTTP请求的修改

所谓普通HTTP请求,就是指GET这种请求

HTTP协议认为GET应该只会从服务器获取资源,不会对服务器本身数据做出改变,所以基本上是安全的

原先请求的流程被修改为:

  • app发起请求
  • 浏览器收到app发起的请求,将真正的网络请求发到另外的站点上
  • 浏览器收到站点的响应
  • 浏览器检查响应头是否允许当前域执行GET请求
    • 如不允许,就报错并丢弃数据
    • 如果允许,浏览器将响应交给app处理

所以浏览器是在执行请求之后进行了检查和限制

CORS对于preflight请求的修改

preflight请求,指的是POST这种会对服务器本身数据做出改变的请求,很可能会造成严重恶意后果

原先请求的流程修改为:

  • app发起请求
  • 浏览器收到app发起的请求(比如POST),先发送一个正常请求(OPTIONS请求)到目标站点上
  • 收到响应后,检查响应头是否允许当前站点向目标站点发起POST请求,
    • 如果允许,将真正的网络请求发到另外的站点上
      • 浏览器收到站点的响应
      • 浏览器将数据交给app处理
    • 如果不允许,直接报错

所以浏览器是在执行请求之前进行了检查和限制

CSRF(Cross Site Request Forgery)跨站请求伪造

CSRF是一种攻击手段,CORS的一个重要作用就是防范CSRF

由于我们的浏览器只是个发送请求的代发工具人,所以服务器收到请求时,并不能知道请求是如何被制造出来的

那么可以有这样的场景:

  • 我要上www.aabbcc.com网站
  • 结果点到了www.aabbccc.com网站
  • 我输入了www.aabbcc.com的用户名和密码
  • www.aabbccc.com利用我输入的用户名密码向www.aabbcc.com的服务器地址(假设为123.123.123.123:3000)发送恶意请求

这样就是www.aabbccc.com伪造了www.aabbcc.com的请求,并发送了,这就是CSRF(跨站请求伪造)

但是如果我们有CORS,在123.123.123.123:3000的响应头中指出只有www.aabbcc.com可以发送请求过来,那么www.aabbccc.com发送的请求就会被CORS和浏览器协作清除掉,www.aabbccc.com也就无法恶意攻击了

网络安全杂谈- CORS/CSRF/XSS 出于浏览器的同源策略限制,浏览器会拒绝跨域请求。同源: 域名、端口、协议都相同,称为同源。 阅读详情

相关推荐

03-CSRF与CORS详解

本文详细介绍了Spring Security中CSRF与CORS的防护机制。CSRF通过生成和验证Token来防止跨站请求伪造攻击,而CORS则通过配置允许的源、方法和头来管理跨域访问。文章包含两种安全机制的工作原理、配置方法和代码示例,展示了如何在Spring Boot应用中实现CSRF防护(包括启用/禁用配置)和灵活配置CORS策略(支持全局和细粒度控制)。这些安全措施对于构建现代Web应用至关重要,能有效防范常见网络攻击并实现安全的跨域资源共享。

智慧是做事用的 353

web前后端漏洞分析与防御(二)-CSRF

跨站请求伪造攻击CSRF(Cross Site Request Forgy) SRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:        攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统...

空默寒的博客-学习和积累 617

CSRF和CORS

CSRF & CORS 下面转的两篇文章分别说明了以下两个概念和一些解决方法: CSRF - Cross-Site Request Forgery - 跨站请求伪造 CORS - Cross Origin Resourse-Sharing - 跨站资源共享 从下面文章中可以知道为什么要设置csrf_token,以及为什么一些网站把csrf_token放入header或url。 ...

qwer000999888的博客 435

什么是csrf、cors?有啥区别?

本文参考 原文链接:https://blog.youkuaiyun.com/weixin_47450807/article/details/123227342跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。CORS(Cross-Origin Resource Sharing, 跨源资源共享)当一个请求url的协议、域名、端口三者之间任意一与当前页面地址不同即为跨域。因此,要想实现CORS进行跨域需要服务器进行一些设置,同时前端也需要做一些配置和分析。

m0_73302761的博客 1897

本地如何安装midscene.js运行环境

手把手教你本地安装midscene.js运行环境

实践助梦想成长 2607

Airsim动态 | 安装ROS包装器(AirSim ROS Wrapper)

本期内容我们将带来在Airsim环境下使用ROS Wrapper的相关教程,以下是AirSim客户端库上的一些ROS Wrapper相关配置。 一、启动 以下步骤适用于 Linux 系统。如果是在 Windows 上运行 AirSim,可以使用 Windows Subsystem for Linux (WSL) 来运行 ROS 包装器,如果不想在主机上安装ROS相关工具,也可以使用Docker容器进行安装。请检查下方内容并按照需求安装,具体内容可以参照最后网址。 如果您的默认 GCC 版本不是8或更高版.

AMOVLAB(阿木实验室) 1776

CSRF防护与CORS配置详解

理解CSRF和CORS的机制与配置方式,是构建安全Web应用的基础。正确配置这两项功能可以在保障安全性的同时,实现必要的跨域访问需求。每次修改请求(POST/PUT/DELETE等)必须携带有效令牌。攻击者诱使用户在已认证的Web应用中执行非预期操作。令牌存储在HTTPSession或Cookie中。:令牌存储在Session中,传统Web应用。服务器生成唯一的CSRF令牌(Token):令牌存储在Cookie中,适合前后端分离。必须确保CORS配置允许携带CSRF令牌。对状态修改请求强制启用CSRF。

weixin_54062440的博客 852

手把手教你用ET-BERT预训练模型搞定加密流量分类(附完整代码)

本文详细介绍了如何使用ET-BERT预训练模型实现加密流量分类,包括环境配置、数据预处理、模型微调及优化策略。通过实战代码示例,帮助开发者快速掌握这一技术,提升网络安全领域的加密流量分析能力。

weixin_29166013的博客 493

AJAX, CSRF & CORS

使用 AJAX,CSRF 和 CORS (Working with AJAX, CSRF & CORS) “仔细查看您自己网站上可能存在的 CSRF / XSRF 漏洞。它们是最糟糕的一种漏洞——很容易被攻击者利用,但对软件开发人员来说却不那么直观易懂,至少在您被攻击之前是这样。” —— Jeff Atwood Javascript 客户端 (Javascript clients) 如果您...

Nancy 博客 446

Python实战:3步搞定DICOM转JPG/PNG(附批量处理脚本)

本文详细介绍了如何使用Python在3步内将DICOM医学影像转换为JPG/PNG格式,并提供了批量处理脚本。通过Pydicom、Pillow和NumPy库的组合,解决了像素值处理、批量转换效率和医学图像特性保留等关键问题,适合医疗AI开发者和放射科医生快速集成到工作流中。

numpy6sculptor的博客 590

信号编辑软件ZX/SignalEditing

信号编辑软件ZX/SignalEditing

weixin_45661395的博客 955

Spring Security的CORS与CSRF(三)

文章目录跨域JSONPCORSSpring Security启用CORSCSRFCSRF的攻击过程CSRF的防御手段使用Spring Security防御CSRF攻击 跨域 在之前的文章[Spring Boot或Spring MVC前后端分离的项目跨域问题的解决方案]已经介绍过跨域以及跨域的解决方案。 在学习Spring Security的时候发现,Security框架也通过HttpSecurity进行链式配置解决跨域问题,是通过CORS进行解决的,随意还是会重点讲解相关CORS。 JSONP JSONP.

致力于不留技术债务cuizb.top 2092

Keil5编译报错:ARM Compiler Version 5缺失的完整解决方案

本文提供了Keil5编译报错“ARM Compiler Version 5缺失”的完整解决方案。详细介绍了手动安装ARM Compiler Version 5的步骤,包括下载安装包、配置编译器路径及常见问题排查,帮助开发者快速恢复老项目的编译环境。

bb456的博客 945

【CSRF、JSONP 和 CORS】

CSRF(Cross-Site Request Forgery,跨站请求伪造)也被称为 one-click attack,攻击者通过伪造用户的请求,诱使用户在已认证的状态下执行非本意的操作。解释一下,黑客通过一些手段诱导用户点击链接,然后浏览器就会去访问一个用户自己曾经认证过的网站,并执行一些敏感操作(发邮件、转账、购买商品、修改密码等)。形成这种漏洞是由于网站没有验证身份,虽然这个请求发自用户的浏览器,但不能代表请求就是用户自愿发出的。

m0_64237310的博客 1350

MSBlock赋能C2f模块,让目标检测在轻量化与精度间双向突破

在文件夹下新建,将上述MSBlock和C2f_MS类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义模块。

LXY_LOVE36的博客 143

Android开发工程师面试问题与参考答案

这是一份Android开发工程师职位面试指南,主要针对自研OS开发岗位。岗位要求3年以上独立开发经验,熟悉Android平台UI设计、四大组件和Java基础。面试问题覆盖五大核心领域:基础知识、开发经验、技术深度、问题解决和性能优化。文章提供了典型面试问题及专业参考答案,帮助应聘者准备关键技术点,如多线程处理、HashMap与ConcurrentHashMap区别、Handler机制等。同时建议应聘者结合项目经验展示优化能力,并注意公司提供完善的薪酬福利和团队文化。

郑伟强dev的专栏 892

cors能防御csrf吗?

cors能防御csrf吗?跨域即cross-domain,它和同源相对,要求两个URL协议、端口号和域名都一致才能同源。cors是一个W3C(万维网联盟)模型,全称是Crossing-origin resource sharing(跨域资源共享),是一种允许当前域的资源(比如html/js/web_service)被其他域的脚本请求访问的机制。跨域请求分为以下两种。 一、 简单请求 二、 复杂请求 一个简单请求大致满足以下条件。 一、HTTP方法是下列之一 1、HEAD 2、GET 3、POST 二、HTT

love_wzh的博客 243

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

CORS+CSRF+XSS

***\1. 同源策略出于浏览器的同源策略限制。同源策略(same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的 javascript 脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)。\2. 跨域。

qq_44005305的博客 940

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

用可复现实验直观理解 CORS 与 CSRF 的区别与联系

本文通过表格对比的方式,清晰阐释了 CORS 与 CSRF 的核心问题、涉及主体、浏览器行为、服务端配置要点、典型现象及二者的联系与误区,明确了 CORS 用于解决跨域读取资源限制,而 CSRF 需通过 Token 校验和 SameSite 属性等方式防御,且 CORS 可辅助防御 CSRF 但并非其解决方案。

blackpeach的博客 830

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

csrf和cors有啥关系

CSRF(Cross-Site Request Forgery)和 CORS(Cross-Origin Resource Sharing)虽然听起来类似,但实际上它们处理的是两个完全不同的安全问题。定义:防御机制:定义:使用场景:实现方式:关系:区别:简而言之,CSRF 关注的是防止恶意网站利用用户的登录状态执行不安全的操作,而 CORS 关注的是允许安全、受控的跨源资源访问。

m0_57236802的博客 848

Spring Security 中的 CSRF和CORS

Spring Security 中的 CSRF和CORS 使用 Spring Security 提供 CSRF 保护 什么是 CSRF? 从安全的角度来讲,你可以将 CSRF 理解为一种攻击手段,即攻击者盗用了你的身份,然后以你的名义向第三方网站发送恶意请求。我们可以使用如下所示的流程图来描述 CSRF: 具体流程如下: 用户浏览并登录信任的网站 A,通过用户认证后,会在浏览器中生成针对 ...

qq_29860591的博客 1613

Spring Boot 处理CORS以及CSRF

CORS 是一种机制,允许浏览器向不同域(协议、域名或端口)的服务器发起请求。在 Spring Boot 中,处理跨域请求(CORS,Cross-Origin Resource Sharing)可以通过以下几种方式实现。CSRF 是一种攻击方式,攻击者诱导用户在已认证的 Web 应用中执行非预期的操作。Spring Security 提供了内置的 CSRF 防护机制。使用 Spring Security 配置 CORS。使用 @CrossOrigin 注解。

qq_33807380的博客 1482

CORS和CSRF

CORS和CSRF 什么是CORS?CORS是一个W3C标准,全称是"跨域资源共享",他允许浏览器向夸源服务器,发出XMLHTTPRequest请求,从而克服了AJAX只能同源使用的限制. 什么是CSRF?名为跨站请求伪造,指攻击者盗用了你的身份,以你的名义发送恶意请求,CSRF主流防御方式是在后端生成表单的时候生成遗传随机token,内置到表单里成为一个字段,同时,将此...

weixin_30627341的博客 303

XSS、CSRF/XSRF、CORS介绍

XSS、CSRF/XSRF、CORS介绍1 XSS1.1 名词解释1.2 作用原理1.3 防范措施2 CSRF/XSRF2.1 名词解释2.2 作用原理2.3 防范措施2.3.1 验证码2.3.2 Referer Check2.3.3 添加 token 验证(token==令牌)3 CORS3.1 名词解释 1 XSS 1.1 名词解释 XSS,即:Cross Site Script,中译是跨站脚本攻击;其原本缩写是 CSS,但为了和网站前端技术领域——层叠样式表(Cascading Style Sheet

LC的博客 1606

CSRF与CORS

CSRF与CORS没有直接的联系。 在CSRF攻击时,不是通过跨域访问来攻击的,比如从恶意B网站下载的javascript执行时,访问正常网站A,不是这样的。一般是从恶意网站B下载的网页里边有一个超级链接,链接到网站A,这是由于用户登陆过网站A,便会携带身份信息(主要是cookie),向A网站发起操作,比如银行转账等。 Spring Security通过设定一个csrf_token的方式,并且这个token下次访问时,通过header、parameter、cookie的方式携带上来,这样Spring S

Tom098的博客 1053

CSRF & CORS 的区别

转发CSRF & CORS 的区别 下面转的两篇文章分别说明了以下两个概念和一些解决方法: 1. CSRF - Cross-Site Request Forgery - 跨站请求伪造 2. CORS - Cross Origin Resourse-Sharing - 跨站资源共享 (1. CSRF)转自:http://www.h3c.com.cn/About_H3C/Compan...

weixin_30374009的博客 656
上一篇: 数据结构与算法复习-02-链表
下一篇: webpack教程02-webpack-dev-server是什么与webpack-dev-server命令行使用
FitzLeopard
博客等级 码龄9年 6粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值