什么是同源策略?解决跨域的三种方法?
1、同源策略
同源策略是一种约定和规范好的安全策略,是浏览器最核心最基本的安全保障。同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。
满足的条件:
(1)协议要相同:HTTP、HTTPS;
(2)域名或者IP要相同;
(3)端口号要相同;
如果,其中一个条件没有满足,那么就是跨域了;
比如:
前端: http://192.168.2.37 默认端口80
后端: http://192.168.2.37:7001
(a)受同源限制的情况:动态数据(来自于后端的数据)
(1)AJAX;
(2)COOKIE;
(3)localStorage;
(4)sessionStorage;
(5)indexDB:本地数据库;
(b)不受同源限制的情况:静态资源(前端用到的资源)
(1)img 的 src 属性; (audio、 video)
(2)link 的 href 属性;
(3)script 的 src 属性;
(4)自定义字体库;
2、跨域的三种处理方式
三种处理跨域的方式,是各自独立的,比如JSONP就是一种独立的跨域处理方式,不需要服务器端配置CORS来支持,当然在一个项目里面两者可以混合起来使用:获取数据就用JSONP,提交数据就用CORS;
1、JSONP:JSON with Padding
- 原理:JSONP是利用 <script> 标签跨域特性进行数据跨域访问的,Script标签不受同源的限制;
- 特征:
- 非常的轻便;
- 是浏览器默认支持的,兼容性非常好;
- 只支持GET请求,不支持POST等其他请求;
- 只能获取数据,不能提交数据,所以比较轻便高效;
- 还是需要服务器端支持:支持JSONP;
2、CORS:CrossOriginResourceSharing 跨域资源共享
特点:
- 在服务器端进行相关的配置;
- 所有的服务器端编程语言都可以轻松的支持这种配置;
- 功能比较强大,支持GET和POST;
- 如果需要跨域携带凭证:
- 服务器端需要明确的设置支持跨域携带凭证;
- 设置允许的客户端的时候,不能使用*,要具体的域名,不要使用localhost或者127.0.0.1;
- 客户端也需要进行允许跨域携带凭证的配置:withCredentials
3、Proxy代理--需要准备一个代理服务器
特点:
- 安全策略是客户端(浏览器)的基本策略
- 跟服务器端没有关系,服务器端不受同源的限制;
- 我的客户端就请求自己的服务器(代理服务器),然后我们自己的服务器(代理服务器)向目标服务器发起请求,当代理服务器获取到数据之后,再把数据响应给客户端;
- 记住:代理的实现跟代码没有关系,是代理服务器(Egg\apache\nginx\tomcat)的事情,跟业务代码没有任何关系;
- 无感的:对跨域不再有感觉;
什么是同源策略?解决跨域的三种方法?相关推荐
- 什么是同源策略及解决跨域的三种方式
同源策略 1.1.1 所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源.同源策略/SOP(Same origin policy)是一种约 ...
- vue开发环境和生产环境里面解决跨域的几种方法
vue开发环境和生产环境里面解决跨域的几种方法 参考文章: (1)vue开发环境和生产环境里面解决跨域的几种方法 (2)https://www.cnblogs.com/pass245939319/p/ ...
- 前端交互之“解决前端跨域的三种方法”
1.什么是前端跨域? 跨域是浏览器为了安全而做出的限制策略:浏览器请求必须遵从同源测试: http://www.bilibili.com:8080:/anime/?key=calue路径 键值对 同协 ...
- 前端解决跨域的九种方法
什么是跨域? 跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的. 广义的跨域: 1.资源跳转:A链接.重定向.表单提交 2.资源嵌入: <link>.<scr ...
- vue cli3解决跨域的两种方法
请去下面网站非常清晰:https://www.jianshu.com/p/eb3de95cfc82
- 解决前端跨域的几种方法
解决前端跨域的几种方法 了解跨域出现的原因 解决跨域的几种方法 想要解决跨域 先要知道为什么会出现跨域 跨域:指的是浏览器不能执行其他网站的脚本 它是由浏览器的同源策略造成的 是浏览器对javascr ...
- 前端实现跨域的三种方式
前端解决跨域的三种方式: 1.cors跨域(只需要后端配置) header("Access-Control-Allow-Origin:*"); // 允许任何来源 header(& ...
- 浏览器同源策略及跨域的解决方法
浏览器同源策略及跨域的解决方法 参考文章: (1)浏览器同源策略及跨域的解决方法 (2)https://www.cnblogs.com/laixiangran/p/9064769.html 备忘一下.
- Django - - 进阶 - - 同源策略和跨域解决方案
目录 同源策略 一个源的定义 同源策略是什么 举个例子 jQuery中getJSON方法 JSONP应用 1, 同源策略 1.1 一个源的定义 如果两个页面的协议,端口(如果有指定)和域名都相同,则两 ...
最新文章
- OpenCV(十五)边缘检测1 -- Sobel算子(一阶微分算子,X、Y方向边缘检测)
- Linux 操作系统原理 — 内存 — 基于局部性原理实现的内/外存交换技术
- You are what you say!
- pip更换源 windows10_Conda及Pip换源处理
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol52]38.隐蔽信道和侧信道的区别
- 数据科学 IPython 笔记本 7.15 高性能 Pandas
- 说说Asp.net 身份验证、授权
- android组件化数据生命周期,Android组件化开发实践(七):开发常见问题及解决方案...
- 安装mysql 错误重新安装
- PDFLib9以上版本的去水印办法
- 如何在Debian8.6 jessie上使用小度Wifi
- 容器监控工具cAdvisor
- 前端需要学习c语言吗,我应该在学习C语言之前学习HTML或CSS吗?
- 用 Web 技术为 Safari 编写扩展
- 数字图像处理 检测护照图像中的机器可读区域
- Frps一键安装脚本,带Frpc Windows便捷启动脚本
- CUDA入门和网络加速学习(二)
- 苹果电脑破音的解决办法
- 敬老院无线看护系统解决方案,让老人安心,家属放心
- 王卫不再担任顺丰速运法人 变更为陈雪颖
热门文章
- 乐视实行四天半工作制,贾跃亭羡慕的表示下周回国
- SSH命令行使用方法
- 跳入餐饮新消费水池,腾讯、字节、B站能否“如鱼得水”?
- ABB机器人基本知识。
- 2018年英语专升本英语阅读「Part II 阅读专区」【文章(图片)、答案、词汇记忆】
- 【统计技术】数据挖掘在反欺诈中的应用
- 谈谈制造企业如何制定敏捷的数字化转型策略
- JS小练习:使用JavaScript实现点击‘上一张’,‘下一张’循环播放图片
- 谷歌浏览器和火狐浏览器永久禁用缓存【一劳永逸的解决方式】
- No 和 Not 的区别