关于同源策略的理解

0x00000001.首先让我们明确一下相关概念:

	源:源即是协议、域名和端口号。
		如:https://blog.youkuaiyun.com/zzy2210:8080 就是一个源
	同源:即源相同,源也就是说只要协议、域名、端口号相同便属于同源。
		如:对于https://blog.youkuaiyun.com/zzy2210 
					   http://blog.youkuaiyun.com/zzy2210 		    不同源,因为协议不同
					   https://blog.youkuaiyun.com/zzy2210:1080 不同源,因为端口不同
					   https://blog.youkuaiyun.com/zzy9001			同源
					   https://blog.net/zzy2210					不同源,因为域名不同
	同源策略:同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。
	即www.baidu.com下的js脚本在无授权的情况下,读取blog.youkuaiyun.com/zzy2210:8080 是会报错的。
	

0x00000002 例外的IE

在同源策略,ie 主要有两个不同点:
  • 授信范围:(Trust Zones):两个相互之间高度互信的域名,如公司域名(corporate domains),不遵守同源策略的限制。
  • 端口:IE 未将端口号加入到同源策略的组成部分之中,因此 http://company.com:81/index.htmlhttp://company.com/index.html 属于同源并且不受任何限制。

0x00000003 跨域

以下知识我并未完全掌握,将慢慢补充
 跨域,是不同源脚本操作其他源下的对象所需要的。
跨域的实现形式有:
	1.降域(双向跨域)document.domain
	同源策略认为域和子域不是同一个域,但是可以通过
document.domain

这个命令来使域与子域同源。
如:
main.com与child.main.com并不同源,
但是在child.main.com中设置document.domain = 'main.com’即之由子域改为主域
2.JSOP跨域(单向跨域)
NULL
3.Ajax跨域(CORS)
NULL
4.window.postMessage(双向跨域)
NULL
5.window.name
NULL
6.location.hash
NULL
7.跨域内嵌的资源
这一点其实是因为页面中的链接、重定向以及表单提交是不会受同源策略限制。
如:

a.<script src="..."></script>标签嵌入脚本。
b.<link rel="stylesheet" href="...">标签嵌入CSS。
c.<img>嵌入图片。
d.<video> 和 <audio>嵌入多媒体资源。
e.<object>, <embed> 和 <applet>的插件。
f.@font-face引入的字体。一些浏览器允许跨域字体( cross-origin fonts),一些需要同源字体(same-origin fonts)。
g.<frame>和<iframe>载入的任何资源。站点可以使用X-Frame-Options消息头来阻止这种形式的跨域交互。
0x00000004 感悟
其实我开始看这个是因为实验室的师傅给的xss学习资料然后来学同源策略,学了个框架与大概后,感觉有点懵逼又好像有些明白。在这里似乎有一种攻击思路但我没能抓住,如果以后抓住了的话,我会尽量将它描述出来并写在这
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值