程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

跨域理解

发布于2021-03-08 19:58     阅读(1016)     评论(0)     点赞(6)     收藏(2)


在了解跨域这个概念之前,先了解下浏览器的同源策略吧!

什么是同源策略?

1.同源策略是浏览器设置的一种安全策略,限制了从同一个源加载的文档或脚本与来自另一个源的资源进行交互
2.什么是同源呢?
答:同源是两个URL具有相同的协议/端口号/域名
在这里插入图片描述
3.如果没有同源策略会怎么样呢?

最主要就是安全问题
没有同源策略就意味着一个网页可以随意访问另一个网页。会造成CSRF攻击和钓鱼网站可以直接拿到别的网站的Dom。

用户访问www.mybank.com ,登陆并进行网银操作,这时cookie啥的都生成并存放在浏览器
此时用户突然想访问一个网站 www.xiee.com
这时该网站就可以在它的页面中,拿到银行的cookie,比如用户名,登陆token等,然后发起对www.mybank.com 的操作。
如果这时浏览器不予限制,并且银行也没有做响应的安全处理的话,那么用户的信息有可能就这么泄露了。

4.同源策略的限制:

无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB
无法接触非同源网页的 DOM
无法向非同源地址发送 AJAX 请求

什么是跨域?

跨域是指从一个域名的网页去请求另一个域名的资源。由于存在同源策略,使得浏览器不能跨域访问。

解决跨域问题

(1)CORS(阮一峰老师跨域资源共享 CORS 详解
(2)JSONP
在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。
(3)通过修改document.domain来跨子域
两个页面的document.domain都设成相同的域名就可以了
(4)使用HTML5的window.postMessage方法跨域
关于最后三种跨域方法,见此文档
https://segmentfault.com/a/1190000015597029此文档对于跨域问题也做了很好的理解

原文链接:https://blog.csdn.net/qq_40198520/article/details/114438718




所属网站分类: 技术文章 > 博客

作者:听说你混的不错

链接:http://www.qianduanheidong.com/blog/article/33658/0a402f360f98b8ae373a/

来源:前端黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

6 0
收藏该文
已收藏

评论内容:(最多支持255个字符)