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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/destiny1507/article/details/87981713

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

(一些内容属于个人理解,如有错误请不吝指正)

同源策略

概念

所谓同源,一般是指域名、协议、端口相同。一般来说,只有同源的页面可以互相读取彼此的数据,或者改变彼此在浏览器中的显示。

怎样算是同源?

借用书上的一个例子:
网页a.com通过一下代码加载b.com上的js文件:

 > \<script src = http://b.com/b.js > \</script>

对于当前的页面来说,b.js被加载到了a.com上,所以b.js的“源”就是a.com。也就是说,对于当前页面来说,页面内存放js文件的域并不重要,重要的是加载js页面所在的域。

  • 注意:
    在浏览器中,<script>、<img>、<iframe>、<link>等标签都可以跨域加载资源,不受同源策略的影响。这戏带src属性的标签每次加载时,实际上是由浏览器发起了一次GET请求。

XMLHttpRequst

XMLHttpRequst对象,通过src属性加载的资源,浏览器限制了js的权限,使其不能读、写返回的内容。
之前XMLHttpRequst不能跨域访问资源,但是后来W3C委员会制定了标准,使其可以在符合标准的情况下跨域访问。即通过目标域返回的HTTP头来授权是否允许跨域访问

浏览器插件

浏览器的一些第三方插件一般也都有自己的同源策略,以Flash为例:

  1. 通过目标网站提供的crossdomain.xml文件来判断是否允许当前“源”的Flash跨域访问目标资源
  2. 检查MIME以确认crossdomain.xml是否合法
  3. 检查crossdomain.xml是否在根目录下

浏览器沙箱(sandbox)

概念

目前泛指“沙箱”为“资源隔离模块”的代名词。

目的

一般是为了让不可信任的代码运行在和其它代码隔离的环境中,限制不可信任的代码访问隔离区之外的资源。如果一定要跨越sandbox边界,只能通过一定的数据通道,比如经过封装的API等。
而浏览器采用sandbox技术,可以避免不受信任的网页代码或者js代码危害本地桌面系统的安全。

浏览器的多进程架构

浏览器的多进程架构可以把浏览器的各个功能模块分开,避免一个进程崩溃影响所有进程。
为什么浏览器使用多进程架构?

猜你喜欢

转载自blog.csdn.net/destiny1507/article/details/87981713