查看: 2369|回复: 25

白帽子讲web安全–浏览器安全

[复制链接]
发表于 2013-11-28 10:49:59 | 显示全部楼层 |阅读模式
同源策略:不同源的“document”或脚本,不能读取或者设置当前的“document”
同源定义:host(域名,或者IP),port(端口号),protocol(协议)三者一致才属于同源。
要注意的是,同源策略只是一种策略,而非实现。这个策略被用于一些特定的点来保护web的安全。
<script>,<img>,<iframe>,<link>等标签都可以跨域加载资源,不受同源策略的限制。
XMLHttpRequest,DOM,cookie受到同源策略的限制。
网站可以通过提供crossdomain.xml来允许某些源跨域访问自己的资源。
google chrome使用了多进程来隔离代码运行的环境,从而起到提高web安全的作用
Q & A
Q:cookie为什么需要同源策略?
A:cookie有同源策略是必须的,这样可以保证A网站的用户(识别)信息不会被B网站获取到
Q:XMLHttpRequest为什么需要同源策略?
A:两个例子:
(1)加入没有同源策略,某个网站的某张页面被你写入了一些js ,这些js有些ajax操作,如果某个用户访问了这张页面,你的js就可以获得用户的某些信息(cookie,本地文件等)然后通过ajax发送回你的服务器。 这就是安全问题,信息泄漏。
其实这个就是XSS攻击,为了防止XSS攻击后,用ajax请求返回用户敏感信息。但是其实XSS的攻击仅靠XMLHttpRequest的同源策略根本没用,后面的章节会看到。这也许是当时XSS还没那么丰富的时候,还算比较有效的安全策略。
(2)先假设浏览器没有限制跨域,A站的xhr请求B站的一个url,那么浏览器是要带上谁家的cookie一起请求呢?(每次http请求都要带上该站下的所有cookie)显然是B家的。假设B家的网站当前用户已经登录,那么cookie里自然记录下了sessionId相关的东西以标识当前用户的身份,那么本次xhr请求很easy的通过了身份认证,然后后果就是不堪设想的。
这个就很正确,如果A可以用xhr跨站访问B,带着B的cookie自然可以通过B网站的验证,从而获取到敏感数据。所以这点是关键。

发表于 2013-12-2 00:01:29 | 显示全部楼层
希望可以用些时间了~````  
发表于 2013-12-2 19:34:49 | 显示全部楼层
你你你你 呵呵~~~~别这样哦.....  
发表于 2013-12-3 12:24:28 | 显示全部楼层
哦...............  
发表于 2013-12-3 16:40:53 | 显示全部楼层
文笔流畅,修辞得体,深得魏晋诸朝遗风,更将唐风宋骨发扬得入木三分,能在有生之年看见楼主的这个帖子。实在是我三生之幸啊。  
发表于 2013-12-4 00:10:44 | 显示全部楼层
勤奋真能造就财富吗?  
发表于 2013-12-5 20:02:35 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2013-12-8 07:26:04 | 显示全部楼层
原来是这样  
发表于 2013-12-9 23:46:51 | 显示全部楼层
说的不错  
发表于 2013-12-11 16:54:58 | 显示全部楼层
帮你项项吧  
高级模式
B Color Image Link Quote Code Smilies

本版积分规则