资讯专栏INFORMATION COLUMN

前端培训-中级阶段(10)- 同源策略(2019-08-15期)

heartFollower / 3458人阅读

摘要:同源策略是什么同源策略是浏览器的一个安全功能,不同源的数据禁止访问。或许你可以说验证,在浏览器没有同源策略的情况下这些都可以绕过去。总结同源策略是蛮好的,防御了大部分的攻击。

前端最基础的就是 HTML+CSS+Javascript。掌握了这三门技术就算入门,但也仅仅是入门,现在前端开发的定义已经远远不止这些。前端小课堂(HTML/CSS/JS),本着提升技术水平,打牢基础知识的中心思想,我们开课啦(每周四)。

同源策略是什么?

同源策略是浏览器的一个安全功能,不同源的数据禁止访问。
所以 lilnong.top 下的 ajax 访问 51vv.com 数据是会报错。(network 可以看到 response,证明限制是浏览器方的限制)

当然,也有例外

表单提交、链接
这些项等同于切换页面

script标签的src、link标签的href、img标签的src、iframe标签的src
上述的资源可以引用,但是不可获取内容。

img 可以显示出来,但是你无法放入canvas二次使用,会把canvas的源污染。

iframe 可以显示,不可以获取DOM

script 不可获取报错代码位置。

同源的定义

端口域名协议 都相同,定义为同源
针对http://www.lilnong.top/static这个地址来说。端口(80),域名(www.lilnong.top),协议(http

URL 端口 域名 协议 描述
https://www.lilnong.top 80 www.lilnong.top https 协议不同,不同源
http://lilnong.top 80 lilnong.top http 域名不同,不同源
http://lilnong.top:8080 8080 lilnong.top http 域名不同,端口不同,不同源
http://www.lilnong.top:8080 8080 www.lilnong.top http 端口不同,不同源
http://www.lilnong.top/ 80 www.lilnong.top http 同源
http://www.51vv.com 80 www.51vv.com http 域名不同,不同源
为什么要有同源策略

安全问题
例子1:普通的网络用户,不会去记域名等内容。如果我在我自己的页面内,嵌套一个