32 | 同源策略:为什么XMLHttpRequest不能跨域请求资源?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
同源策略是浏览器安全的基础,它通过限制不同源之间的资源访问和DOM操作来确保Web页面的安全性。然而,这种严格的安全策略也带来了一些限制,比如无法直接访问不同源站点的Cookie、IndexDB、LocalStorage等数据,以及默认情况下不能通过XMLHttpRequest等方式访问跨域资源。为了在安全性和便利性之间取得平衡,出现了内容安全策略(CSP)、跨域资源共享(CORS)和跨文档消息机制等解决方法。CSP限制了第三方资源的自由程度,CORS允许安全地进行跨域操作,而跨文档消息机制则实现了不同源的安全通信。这些安全策略的理解对于Web开发和安全至关重要,它们在保障Web页面安全的同时,也为开发者提供了灵活性和便利性。
《浏览器工作原理与实践》,新⼈⾸单¥59
全部留言(27)
- 最新
- 精选
- 歌顿同源策略、CSP 和 CORS 之间的关系: 同源策略就是说同源页面随你瞎搞,但是不同源之间想瞎搞只能通过浏览器提供的手段来搞 比如说 1. 读取数据和操作 DOM 要用跨文档机制 2. 跨域请求要用 CORS 机制 3. 引用第三方资源要用 CSP
作者回复: 总结的很好
2019-10-252116 - Angus看这篇幅,专栏应该会在浏览器安全中结束。从二十五讲开始就觉得越来越浅显了,前面好几篇说的后面章节再详细讲解的部分好像并没有出现。
作者回复: 是的,有几个原因: 第一、每篇文章有death line的,越到后面时间越赶,所以完成每篇文章的时间就越来越紧凑了。 第二、浏览器这块要讲的东西比较多,有架构,JavaScript,页面,网络和安全,还有一些H5的内容。 所以当初在定目录的时候,主干36篇课程主要讲主线内容,要照顾广度,所以有些细节不能深入太多。比如提到CSP和CORS在主干课程中没办法讲的太细。 当然,这些原因并不是不把内容讲透的借口,接下来,我把会把很多深度内容放到加餐和答疑部分: 比如有老铁问事件循环中采用while会不会造成页面卡死的问题?这里我到时会补充介绍系统事件驱动机制,还会结合事件循环机制来介绍Performance。 还有很多老铁问到UI线程,所以这块我还要结合浏览器进程和网络进程来补充相关知识! 稍晚点就要着手准备加餐内容大纲了。
2019-10-18260 - 磐希望老师能详细的讲解,最近几讲,感觉讲的太浅显了,都是些概念性的东西
作者回复: 的确,篇幅有限,讲太细了广度照顾不到! 我先还是搭建整体的体系框架,涉及到细节内容我们答疑来补! 感觉我是在给自己挖个大坑,要补的内容感觉都能出一个小专栏了
2019-10-1736 - 空山鸟语老师总结的非常好,具体的细节我们可以自己查资料。 但是在我们学习过程中发现,现在网上文章质量参差不齐,想找到一篇好文章很不容易。比如某金,文章多而杂,往往是看完了感觉没什么收获,也消耗了耐心和精力。 针对这种情况,我们该怎么半呢?
作者回复: 关于浏览器的介绍网上资料好的的确不多,写这个专栏的时候也查阅了很多网上的资料,但是总体上质量都不怎么行,而且有些作者的理解也不正确错误! 另外网上的资料也谁零碎、不成体系的! 如果自己去啃源码会花费很大精力! 所以极客时间的gray找到我的时候,我觉得来做浏览器专栏很有必要,因为浏览器应用已经非常广的,而市面上体系化介绍浏览器的书籍或者文章少之又少! 如果你想深入了解,这里我推荐去看一些官方举办会议的视频,比如油管上的blink on!另外还有源码里面的文档,不过啃着快的难度有点大!
2019-11-19310 - Geek_259055想详细了解CORS,可以看阮一峰的这篇文章https://www.ruanyifeng.com/blog/2016/04/cors.html
作者回复: 感谢提供资源
2019-11-196 - 隔夜果酱这些安全机制感觉还是太弱了,非常容易被攻破.怪不得早些年钓鱼网站横行.
作者回复: 目前稍微好点,有了沙盒,有了HTTPS,少了插件,页面进程也做了分离,攻击站点的难度和成本都提升了不少!
2019-10-171 - 早起不吃虫老师,跨域资源共享和跨文档消息机制这一块可以详细讲一下吗
作者回复: 讲这个我还得准备一些后端的演示代码,放到最后的答疑部分吧
2019-10-171 - wd2010老师,浏览器的同源策略可以再讲细点么,比如浏览器的内部处理机制是怎样的,这些感觉很需要老师帮忙解答下
作者回复: 这块浏览器处理到是不复杂的,主要是弄清楚同源策略的具体开了哪些口子,这些口子是如何影响到前后端开发的?
2019-10-31 - Demo_12同源策略是为了解决网络安全的问题,限制只能在同源的站点内操作DOM、本地数据、网络请求 而CSP 和 CORS是解决因同源策略限制而损失的灵活性和便利性 CSP,通过设置 Content-Security-Policy 来决定你的浏览器可以执行哪里的脚本,可以解决XSS攻击的问题 CORS,可以通过HTTP请求来共享不同源的数据 postMessage, 支持跨文档读取数据和操作 DOM2020-11-269
- -_-|||“CSP 的核心思想是让服务器决定浏览器能够加载哪些资源,让服务器决定浏览器是否能够执行内联 JavaScript 代码。”服务器怎么决定“浏览器是否能够执行内联 JavaScript 代码”?难道服务器还能监听浏览器执行的代码?2019-12-1755