access-Control-Allow-Origin跨域请求安全隐患

React跨域解决方案 看到网上举的一个形象例子,先设想下,如果允许跨域,那么黑衣人是不是可以在自己的网页上把请求转发给其他网站?例如,黑衣人在自己的页面设计了一个跨域请求到某钱堆的网址,当用户访问黑衣人网址时,浏览器按照黑衣人设计去访问了钱堆(还携带了用户在钱堆那儿的cookie)......之后,之后警察叔叔们又要加班了。获取的IP信息:var returnCitySN = {"cip": "117.136.83.208", "cid": "CN", "cname": "CHINA"};是的,错误的原因就是你跨域了。 阅读详情
-收缩 HTML代码   运行代码   [如果运行无效果,请自行将源代码保存为html文件运行]
<?php
header( "Access-Control-Allow-Origin: *");
?>

  最新的W3C标准里是这么实现HTTP跨域请求的,Cross-Origin Resource Sharing,就是跨域的目标服务器要返回一系列的Headers,通过这些Headers来控制是否同意跨域。

  这些Headers有:

  在Request 包和 Response 包中都有一些。

  其中最敏感的就是 Access-Control-Allow-Origin 这个 Header, 他是W3C标准里用来检查该跨域请求是否可以被通过。 (Access Control Check)

  跨域实现的过程大致如:

从 http://www.a.com/test.html 发起一个跨域请求,请求的地址为: http://www.b.com/test.php,如果 服务器B返回一个如下的header

Access-Control-Allow-Origin: http://www.a.com,那么,这个来自 http://www.a.com/test.html 的跨域请求就会被通过。

  在这个过程中, request 还会带上这个header:Origin: http://www.a.com

access-Control-Allow-Origin跨域请求安全隐患

  不过这里比较要命的是 Access-Control-Allow-Origin 的值可以是通配符 *

  如果是 * 的话,就可以接收来自任意source origin的请求。

  我已经可以想象到以后这个特性被程序员滥用以及被用来制作后门的可怕后果了!

在 Firefox 3.1 Beta 2 上抓包如下:

GET http://www.b.com/test.php HTTP/1.1
Host: www.b.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1b2) Gecko/20081201 Firefox/3.1b2 Paros/3.2.13
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://www.a.com/test.html
Origin: http://www.a.com
Cache-Control: max-age=0

HTTP/1.1 200 OK
Date: Thu, 15 Jan 2009 06:28:54 GMT
Server: Apache/2.0.63 (Win32) PHP/5.2.6
X-Powered-By: PHP/5.2.6
Access-Control-Allow-Origin: *
Content-Length: 28
Content-Type: text/html

Cross Domain Request Test!

两段代码大致如下:
www.a.com/test.html:

-收缩 HTML代码   运行代码   [如果运行无效果,请自行将源代码保存为html文件运行]
<script>
var client =  new XMLHttpRequest();
client.open( "GET",  "http://www.b.com/test.php");
client.onreadystatechange =  function() { }
client.send( null);
</script>

 

www.b.com/test.php:Cross Domain Request Test!

  除了这个Header外,还可以通过一些其他的Header 来控制比如 Method, 时间等,可以参考标准,不在此赘述。

  出于安全考虑,跨域请求不能访问document.cookie 对象

  对于IE8 Beta 2, 则是通过 XDomainRequest 来实现的这个跨域请求,比如类似如下代码就可以实现了:

-收缩 JavaScript代码
var request =  new XDomainRequest();
request.open( "GET", xdomainurl);
request.send();

 

  也要求对方服务器返回这个头才行。

  IE的开发者今天公布了一段小视频:http://ieblog.members.winisp.net/images/XdomainRequest-small.wmv

  目前,支持这种跨域实现的要求

Firefox 3.1 Beta2

IE 8 Beta2

等到普及还有一段时间。

最后再加一个Firefox3.1实现跨域的说明文档:
https://developer.mozilla.org/En/HTTP_access_control

时间:2012-11-05 评论:0 波波 繁體中文
转载请注明出处:access-Control-Allow-Origin跨域请求安全隐患
STM32F103 实例应用(10)——I2C读写24C32 一、应用简介 本文介绍24C32的读写,基于野火的软件I2C程序。 board_i2c.h /**=========================================================================== @file board_i2c.h @brief 本文件是用于I2C驱动 @author 青梅煮久 @version r0.1 @date 2021/01/13 -------------------------. 阅读详情

相关推荐

新能源场站必看:一次调频与AGC/AVC的协同控制逻辑解析(含典型拓扑图)

本文深度解析了新能源场站中一次调频与AGC/AVC的协同控制逻辑。针对电网频率与电压稳定需求,详细阐述了三者在响应时序、控制目标上的分工与配合,并重点剖析了以RCL-0923装置为核心的指令融合架构与典型拓扑,为场站实现高效、稳定的协同运行提供了清晰的实践指导。

brown的博客 1062

Access-Control-Allow-Origin跨域解决及详细介绍

解决跨域问题。详细介绍了跨域的相关内容。

MicroAnswer的博客 9万+

ArcGIS基础:CAD数据转换为GIS数据(符号化显示、数据转换、线转面、空间连接)

1、符号化显示: CAD数据加载进来有很多列表,包含了点【point】、线【polyline】、面【polygon】、标注数据【Annotation】等数据,本次实验我们需要用到的是面数据,也就是.dwgPolygong格式的数据。如下图所示: 把数据加载进来,然后在2处打开属性表,查看CAD数据的属性表,打开后可以发现【layer】图层表示就是地块的用地性质,它就是符号化显示的依据。 我们在数据上右键【属性】,打开图层属性,找到【符号系统】,选择类别中的【唯一值】,然后在【值字段】下拉选择【layer】,

yuanYW7556的博客 2万+

跨域(Access-Control-Allow-Origin)解决方案详解

摘要: 浏览器的同源安全策略限制跨域访问,要求协议、域名和端口相同。跨域请求会被浏览器拦截,但服务器仍能正常响应。解决方案包括: CORS:通过设置响应头(如Access-Control-Allow-Origin)允许跨域访问,支持动态配置域名或使用通配符*(需注意安全性)。 SpringBoot配置:通过重写addCorsMappings方法全局设置跨域规则,或直接在接口中添加响应头。 Nginx代理:在反向代理中配置add_header实现跨域支持,适用于多域名场景。 这些方法灵活平衡安全性与跨域需求,

前G厂程序员/架构/产研经理,AI 进化派,一线 OPC 实践者。 持续分享编程、职场、AI、副业/创业干货~ 7万+

C++语言程序设计教程第4版杨进才沈显君课后习题答案解析

为了更好地学习这门课程,我尝试在网上寻找一些学习资料和参考书籍,但效果并不是很理想。因此,我希望能有一些学长学姐或者是有经验的程序员能够分享一些学习经验和方法,让我更好地掌握这门课程。学习过程中,我发现这本书的内容非常丰富,讲解也非常详细,对于像我这样编程基础薄弱的学生来说,是一本非常实用的教材。同时,我也希望有经验的程序员能够推荐一些适合初学者的C++语言学习资料和工具,以便我能更好地学习和掌握这门课程。总之,希望能得到大家的帮助和支持,让我更好地学习和掌握C++语言程序设计。主 编: 杨进才,沈显君。

weixin_58833001的博客 1333

ADS 使用调整器动态调参教程(Tuning)

ADS动态调参教程

weixin_42845306的博客 1万+

Access-control-allow-origin:*并没有实际危害(更新)

一、网站一般在需要共享资源给其他网站时(跨域传递数据),才会设置access-control-allow-origin HTTP头。而跨域传递数据也可以使用jsonp方式 二、如果www.a.com域设置了access-control-allow-origin:* http头, 其他任何域包括www.b.com域的js就可以使用Ajax技术读取到​www.a.com域的数据 三、根据w3...

balance的博客 6万+

工控安全政策系列导读:国际标准IEC 62443标准系列

IEC 62443由ANSI/ISA提出,被ISO/IEC采纳,所以该标准会以不同的名字出现,包括:ANSI/ISA-99,ISA-99,ISA 62443,ISO/IEC 62443,ISO 62443,IEC 62443。其中IEC 62443-2-1已等同采纳为国标,于2016年10月发布,标准编号为GB/T 33007。 IEC 62443是在国...

weixin_34132768的博客 2622

正确配置Access-Control-Allow-Origin,千万不要设置成*

正确配置Access-Control-Allow-Origin,千万不要设置成*,这样的配置太不安全。

baijiafan的博客 9万+

CarPlay wired(USB)连接方案

CarPlay的wired(USB)的连接方案要求车载设备至少要支持USB2.0 Hi-Speed,支持USB Host Mode,该模式要求车载设备能够工作在USB device模式下,因为Apple设备在CarPlay中是作为USB Host的。而通常情况下,车载设备USB是工作在USB Host模式的,而外接的USB设备是工作在USB Device模式的,因而在这种情况下的CarPlay wired(USB)连接方案中就需要进行USB的模式切换。模式切换完成后便是Apple设备(USB HOST)的枚

Ke8323的博客 1万+

mfcc总结,这个mel三角滤波器分组到底是如何起作用的呢?

先看fft频谱图(这是4096字节取样fft计算,横轴频率是从0到512,后边意义不大,未取,纵轴是振幅),那些我随便画的蓝色线,你有什么联想?: 再看,这绿色线,是否有一种上升后,便逐渐式微的感觉,都是三角形的,这或许也是mel当初和绝大多数人看到的: 如果在振幅上加上一条限制的黑线(振幅门槛限制),黑色线以下很多频率就没有意义了,你看,有用的频率连一半(512/2=256)都占不到...

ganggangwawa的博客 9908

Nginx “Access-Control-Allow-Origin” 安全配置

通过白名单限制允许跨域的域名,避免使用Access-Control-Allow-Origin *,以减少CSRF等安全风险‌。以上配置通过动态域名匹配、严格限制方法/头部、正确处理预检请求及补充安全头,实现既灵活又安全的CORS策略‌15。)中不重复设置跨域头,防止响应头冲突‌。若需携带Cookie等凭证,需显式设置。确保在错误处理块(如。

王小工小工历程 4917

Vue3 - 实现内网使用天地图离线地图,详解项目加载天地图的离线地图服务器部署与使用教程示例源码,vue3如何实现天地图的离线加载部署在内网访问(天地图资源下载/瓦片等流程教学,实现天地图各种功能)

Vue3中加载天地图的离线地图,天地图——内网使用离线地图,vue3+leaflet实现天地图离线访问,vue3项目中利用leaflet使用天地图,vue3项目中使用天地图离线地图,天地图离线瓦片的打包与发布(GeoServer)天地图离线瓦片数据下载及本地化部署,在内网中无法直接使用外网天地图资源怎么办,在vue3中openLayers加载地图 -使用天地图的瓦片数据。VUE3天地图离线怎么使用,内网部署天地图,天地图离线瓦片,部分瓦片数据,天地图如何离线,无需网络调用天地图API,vue天地图离线地图,

🏆 前端领域优质创作者 1万+

java设置access-allow_Java Web如何设置多个Access-Control-Allow-Origin

有没有办法让Access-Control-Allow-Origin header允许设置multiple cross-domains呢?如果设置response.addHeader("Access-Control-Allow-Origin","*");感觉这个接口太开放了,不太安全。 我想只设置自己指定的若干个域名或者端口可以调用接口。想下面这样:Access-Control-Allow-Orig...

weixin_33905143的博客 199

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jsp允许跨域访问_CORS——跨域请求那些事儿

在日常的项目开发时会不可避免的需要进行跨域操作,而在实际进行跨域请求时,经常会遇到类似 No 'Access-Control-Allow-Origin' header is present on the requested resource.这样的报错。这样的错误,一般是由于CORS跨域验证机制设置不正确导致的,本文将详细讲解CORS跨域验证机制的原理,让您轻松掌握CORS跨域设置的使用方法,安全...

weixin_35702498的博客 1505

蓝牙模块HM-10手册

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

跨域安全漏洞的挖掘方法

跨域请求的响应头通常包括 "Access-Control-Allow-Origin"、"Access-Control-Allow-Methods"、"Access-Control-Allow-Headers" 等字段,它们指示了允许跨域请求的源、方法和头部和不安全的请求方法(例:OPTIONS等)如果请求的状态是 "Blocked"(被阻止)或响应头中包含 "Access-Control-Allow-Origin"(允许跨域请求的源)相关的字段,就表示存在跨域问题。存在跨域问题/不安全的请求方法。

weixin_45014379的博客 46

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

通俗讲跨域

浏览器跨域如何解决

前端小师姐迪迪_的博客 324

java-sec-code学习之CORS

前言 CORS(跨域资源共享)是用来实现跨域资源访问的,比如有两个域a1.com和b1.com,假设b1.com上面有个接口能够获取一些返回的数据,那么如果我们从a1.com写一段js去请求这个接口的数据,一般来说是请求不了的,会在浏览器爆出CORS错误,但如果有CORS设置,就可以实现这样的访问,甚至可以能够使用b1.com上的cookie。 项目是java-sec-code:https://github.com/JoyChou93/java-sec-code 0x01 从java代码出发 进入contr

midi 483

AI生成API代码中CORS通配符的陷阱与正确配置实践

跨源资源共享(CORS)是现代Web开发中处理跨域请求的核心安全机制,它通过HTTP头部控制不同源之间的资源访问权限。其工作原理基于浏览器的同源策略,通过预检请求(OPTIONS)验证服务器是否允许特定来源、方法和头部的跨域访问。CORS的技术价值在于平衡了Web应用的功能需求与用户数据安全,使得前后端分离架构得以安全实现。在实际工程实践中,当API需要处理用户凭证(如Cookies或Authorization头)时,CORS配置需遵循严格的安全规则:此时Access-Control-Allow-Origi

weixin_30924239的博客 783

新来的妹纸问我 AJAX 请求为什么不安全?没有回答出来。。。

本文包含的内容较多,包括AJAX,CORS,XSS,CSRF等内容,要完整的看完并理解需要付出一定的时间。另外,见解有限,如有描述不当之处,请帮忙及时指出。正文开始...从入坑前端开始,一...

程序IT圈 235

详解XMLHttpRequest的跨域资源共享

0x00 背景 在Browser Security-同源策略、伪URL的域这篇文章中提到了浏览器的同源策略,其中提到了XMLHttpRequest严格遵守同源策略,非同源不可请求。但是,在实践当中,经常会出现需要跨域请求资源的情况,比较典型的例如某个子域名向负责进行用户验证的子域名请求用户信息等应用。 以往,有一种解决方案是利用JSONP进行跨域的资源请求,但这种方案存在着几点缺...

weixin_30556959的博客 387

HTTP之跨域

简单理解http的跨域(Cors)

weixin_45364386的博客 4108

PHP跨域安全陷阱曝光(90%程序员忽略的Access-Control-Allow-Origin漏洞)

快速掌握PHP跨域解决方法,避免常见安全漏洞。详解Access-Control-Allow-Origin配置陷阱及正确写法,适用于前后端分离项目,保障接口安全。提升开发规范,值得收藏。

SimTrans的博客 1074

ChatGPT:SpringBoot解决跨域问题方法-手动设置请求头

ChatGPT:SpringBoot解决跨域问题方法-手动设置请求头

XRT_knives的博客 1411

跨域问题:Access-Control-Allow-Origin

博客来源: 项目合作的时候,出现跨域访问,虽然种种迹象表明、跨域不安全、对于合作项目,来说跨域也不是不可 解决办法:【项目完结后将跨域取消即可】 修改跨域问题在Java后端解决 web.xml中 <filter> <filter-name>crossDomain</filter-name> <filter-class>online.wenmeng.filter.crossDomain</filter-class>.

技匠而已 1万+

Access-Control-Allow-Origin通配符风险?AI给出安全方案

随意使用Access-Control-Allow-Origin: * 会将AI服务暴露给全网,带来跨站请求伪造等安全风险。针对VibeThinker-1.5B这类本地部署模型,应通过白名单机制和Nginx反向代理实现精细化跨域控制,结合开发生产分离、日志监控和自动化扫描,构建可靠的安全防线。

weixin_35879493的博客 1000
上一篇: Sublime Text2 中Emmet(之前叫Zencoding)插件安装以及使用 - jnpd
下一篇: jquery form插件(二)
DDPJS
博客等级 码龄17年 0粉丝 0原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值