CORS跨域请求共享

image.png

参考文章:

https://xz.aliyun.com/t/12001?time__1311=GqGxRGiti%3Dd052x%2BxCwx7qGIxpbDulE%3DoD
https://blog.csdn.net/weixin_46622976/article/details/128452494

跨域资源共享

自己的理解,一般来讲,我们使用未授权的接口漏洞,都是因为一些接口并没有做一些接口的权限鉴定,因此可以看到我们通常可以通过接口访问到很多的敏感数据。但是如果说执行接口进行了权限的验证。我们还可以利用同源策略的配置错误,可以类似csrf漏洞一样,诱导用户点击对应的链接,使用用户的身份验证信息去访问对应的一些敏感站点的信息。这就是cors漏洞。

一般情况:

  • 比如前后端分离的情况,前后端域名不同,但是前端会需要用到后端的接口,发送ajax请求
  • 电商网站加载第三方快递网站的物流信息
同源策略

同源策略 (Same Origin Policy)

  • 协议
  • 域名
  • 端口

​ 同时满足这三种条件就是同源,当存在两个站点,其中有一项不满足相同条件的时候,我们即可说这两个站点不是同源站点,而当其中一个站点想请求另外一个站点的资源的时候我们边称它为跨域请求,而由于安全考虑,跨域请求会受到同源策略的限制

不受影响的标签

​ 在HTML中<a>, <form>, <img>, <script>, <iframe>, <link> 等标签以及 Ajax 都可以指向一个资源地址 在这些标签中有以下的标签不受同源策略的限制

  1. script
  2. img
  3. iframe
  4. link
  5. css

在同源策略(Same-Origin Policy)中,不同源(即不同协议、主机或端口)之间的资源访问受到限制,以增强安全性。不过,某些标签和资源类型有特定的规则:

  • <script>:不受同源策略限制,可以从不同源加载 JavaScript 文件。这使得从外部源加载脚本成为可能,但仍需注意跨站点脚本攻击(XSS)的风险。

  • <img>:不受同源策略限制,可以从不同源加载图片。这使得网页能够显示来自不同源的图像,但不会影响其他资源或进行脚本操作。

  • <iframe>:同样不受同源策略限制,可以嵌入不同源的网页。这允许在一个网页中显示来自不同站点的内容,但需要小心防止点击劫持等安全问题。

  • <link>CSS:在加载外部样式表时不受同源策略限制。网页可以链接到来自不同源的 CSS 文件,以应用样式。

他们是加载外部的资源进行使用,不受到同源策略限制。但是可能就是要主要加载的xss漏洞,可能会有些许影响。因为我感觉你要是加载外部资源感觉也没有什么大的危害。但是话又说回来,如果说万一遇到了一种情况攻击者可以控制对应的这些标签加载的资源,那么就可能有危害了。但我感觉几乎不可能,难以利用。(个人见解)。

请求头判别

image.png

Access-Control-Allow-OriginAccess-Control-Allow-Credentials结果
attack 站点true存在漏洞
*true不存在漏洞
nulltrue存在漏洞
<safe_host> Nulltrue不存在漏洞
  • 其中Access-Control-Allow-Origin表示允许跨域访问的host
  • 如果想跨域传输cookies,需要Access-Control-Allow-Credentials设置为true,并且需要与XMLHttpRequest.withCredentials 或Fetch API中的Request() 构造器中的credentials 选项结合使用,例如使用XMLHttpRequest的时候需要将withCredentials的值设置为true

一般都是输入一个origin 查看返回包这两个响应头的情况去判定有无这个漏洞。

csrf和cors

其实一开始我就觉得这两个挺类似的,都是需要验证用户的授权凭证。
但是同源策略挡不住csrf,因为csrf是提交表单的,不是需要返回敏感信息的。
但是csrf的一些防护策略,对于cors是适用的,因为对于csrf来讲,cookie的授权凭据才是最重要的,而并非是同源策略。因此针对于origin进行过滤,samesite,csrf token ,双重身份验证都是对于防护cors非常有用的。
这一点可以参考我的 csrf 防护[[csrf#​防御策略]]

防护

[[csrf#​防御策略]]

  • Access-Control-Allow-Origin不应该设置为null,也不建议设置为*,做好设置成受信的站点
  • Access-Control-Allow-Methods的值可以控制尽量少一些,只留需要用到的请求方法

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Django学习实战篇四(适合略有基础的新手小白学习)(从0开发项目)

前言&#xff1a; 在本章中&#xff0c;我们开始编写面向用户的界面&#xff0c;其中只涉及简单的HTML结构&#xff0c;不会做太多美化&#xff0c;目的就是把后台创建的数据展示到前台。 从技术上来讲&#xff0c;这一节将涉及Django 中function view和 class-based view 的用…

robosuite基础教程(一)——基本概念

robosuite和robomimic都是由ARISE Initiative开发的开源工具&#xff0c;旨在推进机器人学习和机器人操作领域的研究。 一、基本概念 robosuite是一个由MuJoCo物理引擎驱动的模拟框架&#xff0c;专为机器人学习设计。它提供了一套基准环境&#xff0c;是Advancing Robot Int…

Linux实操笔记2 Ubuntu安装Nginx的不同方法

今天来了解Ubuntu或者说Linux系统安装Nginx的几种办法。包括从Ubuntu的库安装到官方源码编译安装。 一、Nginx是什么&#xff1f; 以下是来自Nginx中文文档的内容。 Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器&#xff1a;相比…

瓶中水位检测系统源码分享

瓶中水位检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

研1日记13

正态分布&#xff1a; toTenor&#xff1a;转数字变为0-1 加载模型&#xff1a; model youmodel() model.load("路径") 测试单个样本&#xff1a;

模特妙善:一位多才多艺的短视频达人,绽放新光彩

模特妙善&#xff0c;在当今多元化的网络时代&#xff0c;短视频已成为人们生活中不可或缺的一部分。而在这一领域中&#xff0c;有一位以其独特魅力和多才多艺而备受瞩目的达人&#xff0c;她就是妙善&#xff0c;本名高艳芳。 模特妙善&#xff0c;出生于山西省的著名景点——…

fiddler抓包01:工具介绍

课程大纲 fiddler是一款常见的抓包工具&#xff0c;可以对web端和移动端的接口请求进行抓包&#xff08;截获&#xff09;、分析、编辑、模拟等&#xff0c;还可以导出jmeter、Loadrunner测试脚本。 1、原理 fiddler作为代理服务器&#xff0c;拦截请求和服务器响应。 2、使用…

PCIe进阶之TL:Request Handling Rules

1 Handling of Received TLPs 本节介绍接收到的 TLP 在数据链路层经过完整性验证之后,这些 TLP 在事务处理层时的处理方式。这些规则如下图所示: 接收侧会忽略保留字段。如果 Fmt 字段显示存在至少一个 TLP Prefix : (1)通过检查后续 DWORD 的第一个字节中的 Fmt 字段,…

【数据结构】第八节:链式二叉树

个人主页&#xff1a; NiKo 数据结构专栏&#xff1a; 数据结构与算法 源码获取&#xff1a;Gitee——数据结构 一、二叉树的链式结构 typedef int BTDataType; typedef struct BinaryTreeNode {BTDataType data;struct BinaryTreeNode* left; // 左子树根节点struct BinaryT…

day01 - Java基础语法

第一章 Java概述 1995年美国Sun推出Java&#xff0c;2009年Sun公司被甲骨文收购 Java之父&#xff1a;詹姆斯高斯林&#xff08;James Gosling&#xff09; Java编译器将源程序编译成与平台无关的字节码文件(class文件),然后由JVM对字节码文件解释执行。不同操作系统&#xf…

71、哪吒开发板试用结合oak深度相机进行评测

基本思想:收到intel的开发板-小挪吒,正好手中也有oak相机,反正都是openvino一套玩意,进行评测一下,竟然默认是个window系统,哈哈

鸿蒙媒体开发系列01——资源分类访问

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01;扫描下方名片&#xff0c;关注公众号&#xff0c;公众号更新更快&#xff0c;同时也有更多学习资料和技术讨论群。 1、概述 应用开发过程中&#xff0c;经常需要用到颜色、字体、间距、图片等资源&am…

Vue3+Element Plus:使用el-dialog,对话框可拖动,且对话框弹出时仍然能够在背景页(对话框外部的页面部分)上进行滚动以及输入框输入信息

【需求】 使用Element Plus中的el-dialog默认是模态的&#xff08;即它会阻止用户与对话框外部的元素进行交互&#xff09;&#xff0c;对话框弹出时仍然能够在背景页&#xff08;对话框外部的页面部分&#xff09;上进行滚动以及输入框输入信息&#xff0c;且对话框可拖动 【…

双三次插值及MATLAB实现

一、双三次插值的概念 双三次插值&#xff08;Bicubic interpolation&#xff09;&#xff0c;又叫双立方插值。在数值分析这个数学分支中&#xff0c;双三次插值是二维空间中最常用的插值方法。在这种方法中&#xff0c;函数f在点 (x0 ,y0) 的值不仅考虑其直接邻接点对其的影响…

mybatis开启日志

步骤很详细&#xff0c;直接上教程 配置文件的文件格式可能有所不同&#xff0c;这里列举两种 配置方法 一. application.properties&#xff08;默认 # 配置mybatis的日志信息 mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl二. application.y…

基于python+django+vue的在线学习资源推送系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

工程师 - ACPI介绍_2

Advanced Configuration and Power Interface (ACPI) Introduction and Overview Version 1.4 : 26 April 2016 Copyright © 2016 Intel Corporation. All rights reserved. *Other names and brands may be claimed as the property of others. 本章提供了高级配置和电源…

【ACM出版,录用检索快】2024年第四届工商管理与数据科学国际学术会议 (BADS 2024,10月25-27)

2024年第四届工商管理与数据科学国际学术会议(BADS 2024)将于2024年10月25-27日在中国重庆召开&#xff0c;大会由喀什大学支持。 在当今全球化与数字化迅速发展的时代&#xff0c;工商管理与数据科学作为推动经济增长和技术进步的重要力量&#xff0c;正以前所未有的速度交叉融…

ROS学习笔记1.Mapping

为了执行自主导航&#xff0c;机器人必须拥有环境地图。机器人将使用此地图进行许多操作&#xff0c;例如规划轨迹、避开障碍物等。 您可以为机器人提供预先构建的环境地图&#xff08;在极少数情况下&#xff0c;您已经拥有具有正确格式的地图&#xff09;&#xff0c;也可以…

Go语言开发im-websocket服务和vue3+ts开发类似微信pc即时通讯

前言 IM即时通讯聊天, 为软件开发者打造&#xff0c;不依赖第三方sdk&#xff0c;完全用Go语言开发即时通讯服务&#xff0c;支持H5、Electron、Wails 、Uniapp和各种小程序的IM即时通讯, 快速实现私聊、群聊、在线客服&#xff01;让你快速搭建一个微信聊天系统&#xff0c;打…