同源策略详解

栏目: jQuery · 发布时间: 5年前

内容简介:同源策略是浏览器相当重要的安全功能,不同源在没有明确授权的情况下,不能读写其他源的资源。同源策略的例如:

同源策略是浏览器相当重要的安全功能,不同源在没有明确授权的情况下,不能读写其他源的资源。

源是什么?

同源策略的 (origin)就是 协议域名端口号

例如:

https://www.tr0y.wang:80/2019/06/02/同源策略详解

这个 url 的源是 https://www.tr0y.wang:80 ,若地址里面的协议( https )、域名( www.tr0y.wang )和端口号( 80 )均相同则属于同源

如何判断是否同源?

同源检测举例:

https://www.tr0y.wang
https://tr0y.wang:80/2019/06/02/同源策略详解
http://www.tr0y.wang:80/2019/06/02/同源策略详解
https://www.tr0y.wang:8080/2019/06/02/同源策略详解

同源策略限制了什么?

在讲清楚这个问题之前,我想起了之前的一个奇妙经历。

在 2016 年,我的一个高中同学的 qq 被盗了,盗号的在各个好友之间试图骗我们充话费。这种一般都是脚本小子,我就想定他的位吓唬一下他,于是我在服务器上开了个 80,利用短网址服务将 ip 转为短链之后,发给他骗他点开,大意是“我帮你充好了,你点击去确认一下”。他还真的点了,顺利拿到了 ip,经过查找定位是上海的,然后一顿威胁报警,还真怂了,告诉我新密码,就退 qq 了。。。其实 ip 地址不一定能精确定位,这个脚本小子的胆子太小了。

这件事过后,我突发奇想,为何不在自己的网页中用 iframe 嵌入 qq 相关的页面(比如 qq 空间),如果点击的人登录了 qq 空间,我便能利用精心构造的 js 拿到点击我网页的人的 qq 号了(手机号等等信息同理),威胁等级直线上升。于是在当天我立马写了一个 demo 出来。

但是经过尝试,虽然 qq 空间的 iframe 加载成功了,但是我页面中的 js 始终没法拿到 qq 空间的 iframe 中的数据,这让我百思不得其解。经过 google 才知道是浏览器同源策略的限制,虽然之前一直知道有这么个东西,但是完全不知道起着什么作用,经过那天的事才深刻理解。

通过以上的故事可以清楚地感知到,我试图嵌入 iframe 的想法很像 CSRF 攻击的雏形,而获取 iframe 中的元素就是同源策略要限制的东西(仅仅是其中的一部分)。

所以同源策略到底限制了哪些行为呢?

  1. 无法读取 Cookie、LocalStorage 和 IndexedDB
  2. 无法获得 DOM(如嵌入的iframe)
  3. 不能发送 AJAX 请求(注意,之前的浏览器是不能发送的,但是后来放松了限制,AJAX 能发服务器也能收得到,但是浏览器默认阻止 js 获取响应的内容。个人感觉是 CORS 出了之后改的)

最后 <script><img><link><frame> 等标签都可加载跨域资源,而不受同源策略限制,带 src 属性的标签加载时,实际上是由浏览器发起一次 GET 请求,不同于 XMLHttpRequest


以上所述就是小编给大家介绍的《同源策略详解》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

黑客秘笈

黑客秘笈

[美]彼得·基姆 / 徐文博、成明遥 / 人民邮电出版社 / 2015-7-1 / 45.00

所谓的渗透测试,就是借助各种漏洞扫描工具,通过模拟黑客的攻击方法,来对网络安全进行评估。 本书采用大量真实案例和集邮帮助的建议讲解了在渗透测试期间会面临的一些障碍,以及相应的解决方法。本书共分为10章,其内容涵盖了本书所涉的攻击机器/工具的安装配置,网络扫描,漏洞利用,人工地查找和搜索Web应用程序的漏洞,攻陷系统后如何获取更重要的信息,社工方面的技巧,物理访问攻击,规避杀毒软件的方法,破解......一起来看看 《黑客秘笈》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具