【网络安全】浅析跨域原理及如何实现跨域

本文探讨了浏览器的同源策略以及它如何导致跨域问题。文章详细讲解了9种跨域解决方案,包括JSONP、iframe、hash、window.name、postMessage、CORS、NGINX代理、Node.js中间件和WebSocket。每种方法都有其特点和适用场景,旨在帮助开发者应对不同情况下的跨域需求。
摘要由CSDN通过智能技术生成

前言

我们在解决一个问题的时候应该先去了解这个问题是如何产生的,为什么会有跨域的存在呢?其实,最终的罪魁祸首都是浏览器的同源策略,浏览器的同源策略限制我们只能在相同的协议、IP地址、端口号相同,如果有任何一个不通,都不能相互的获取数据。并且,http和https之间也存在跨域,因为https一般采用的是443端口,http采用的是80端口或者其他。
同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSRF等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

点击此处即可领取282G网络安全学习资料

在这里插入图片描述
同源策略限制内容有:
1.Cookie、LocalStorage、IndexedDB 等存储性内容
2.DOM 节点
3.AJAX 请求发送后,结果被浏览器拦截了

但是有三个标签是允许跨域加载资源:
{img src=XXX}
{link href=XXX}
{script src=XXX}

常见的跨域场景
当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。常见跨域场景如下图所示:
在这里插入图片描述

其实,跨域并不是请求发不出去,请求能发出去,服务端能收到请求并正常返回结果,只是结果被浏览器拦截了,常见的9种跨域方案,主要有: 通过jsonp跨域、 document.domain + iframe跨域、 location.hash &#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值