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

RTL优化与PPA分析:数字电路设计的关键技术

在数字集成电路设计中,RTL(寄存器传输级)优化是提升芯片性能、降低功耗和减小面积的核心技术。通过PPA(Power-Performance-Area)指标的平衡,工程师可以在不同时序约束下实现设计的最优化。本文基于Synopsys Design Compiler和开源工具Yosys的实验数据,展示了RTL优化在算术单元和控制逻辑中的显著效果,特别是在乘法器和除法器等复杂运算模块中。文章还探讨了AI辅助工具在RTL优化中的应用潜力,为数字电路设计提供了实用的技术参考和工程实践建议。

weixin_42186387的博客 619

手把手教你用Wireshark抓包分析Profinet非周期通信(附实战案例)

本文详细解析了PROFINET非周期通信(RTA)的技术原理与实战应用,通过Wireshark抓包分析,揭示从PLC请求到驱动器响应的完整对话过程。涵盖实验环境搭建、关键配置步骤、典型参数访问流程及故障诊断案例,帮助工程师深入理解并优化工业网络通信性能。

Black的专栏 1048

CSRF防护与CORS配置详解

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

weixin_54062440的博客 852

Aloudata Agent :基于 NoETL 明细语义层的分析决策智能体

这是包括我们在内的一些厂商探索的一个新方向,这种方式先由大模型将自然语言转化为对指标语义层的查询请求(MQL,Metrics Query Language),再由指标平台将指标和维度的查询与计算逻辑转化为准确的 SQL 查询语句。用户查询经大模型语义解析后,将其转换为指标、维度及筛选条件的组合表达,并生成面向指标平台的 MQL,Aloudata CAN 指标平台的语义引擎将 MQL 转换为准确和可执行的查询 SQL,语义引擎内置函数体系与 SQL 解析器,确保语义转换的 100% 准确性。

Aloudata的博客 1663

AJAX, CSRF & CORS

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

Nancy 博客 446

数字IC后端时钟树综合实战:OCC电路优化与时钟树平衡策略

本文深入探讨了数字IC后端设计中时钟树综合的关键挑战,重点分析了OCC电路时钟树优化的必要性。通过实战案例,详细阐述了如何通过手动干预、时钟分组与分段长树等策略,避免工具自动平衡导致的时序违例和资源浪费,从而有效实现时钟树平衡并提升设计质量。

weixin_29306261的博客 326

OpenCv案例(七): 基于OpenCvSharp计算图像的清晰度(自动对焦)

自动对焦,其实是对相机成像的清晰值得计算,若对焦不清晰,成像的清晰度低,视觉效果模糊。若是在工业检测行业,对焦不准确,可能会造成严重后果;对焦准确的图像,其清晰度高,对比度鲜明,层次明显。

qq_37835727的博客 7113

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

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4779

【CSRF、JSONP 和 CORS】

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

m0_64237310的博客 1350

【异常】Claude CLI / Claude Code 命令行工具 “claude 不是内部或外部命令“ 报错完整解决方案

摘要:Windows系统执行Claude命令报错"'claude'不是内部或外部命令",主要原因是环境变量配置问题。解决方案包括:1)通过npm全局安装时需加-g参数并重启终端;2)检查Node.js环境及npm全局路径是否加入系统PATH;3)对于Claude Code独立安装版,需手动添加.local/bin路径到环境变量。常见错误包括安装不完整、权限不足或路径未自动配置,按照对应场景排查即可解决。

奶爸的编程之路,也就一周冷个三天 7810

超级详细的GNS3最新版3-2.2.50安装配置教程,网工速度收藏!

你好,这里是网络技术联盟站,我是瑞哥。上周给大家分享了GNS3安装包。周末的时候有小伙伴在安装的时候遇到了一些问题,瑞哥周末特地从头安装了一下GNS3,今天给大家出个安装的教程,每一步的步骤我都截图了下来,希望对大家有所帮助!

网络技术联盟站 1108

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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

CORS+CSRF+XSS

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

qq_44005305的博客 940

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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

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

blackpeach的博客 830

Statistics and Machine Learning Toolbox

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

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、付费专栏及课程。

余额充值