【白帽子讲Web安全】第二章 浏览器安全

2.1 同源策略

1.浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。

2.这一策略极其重要,如果没有同源策略,可能a.com的一段JavaScript脚本,在b.com未曾加载此脚本时,也可以随意修改b.com的页面(在浏览器显示中)。为了不让浏览器的页面行为发生混乱,浏览器提出“Origin”(源)这一概念,来自不同Origin的对象无法相互干扰,如下例所示

在这里插入图片描述

从上表可以看出,影响”源”的因素有:host(域名或IP地址)、子域名、端口、协议

需要注意的是,对于当前页面来说,页面内存放JavaScript文件的域并不重要,重要的是加载JavaScript的页面所在的域是什么。举例说明:a.com通过如下代码

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

加载了b.com上的b.js。因为b.js是运行在a.com上的,所以b.js的域就是a.com。

3.在浏览器中,<script>,<img>,<iframe>,<link>等标签都可以跨域加载资源,而不受同源策略的限制。这些带”src”属性的标签每次加载时,实际上是由浏览器发起了一次GET请求。不同于XMLHttpRequest的是,通过src属性加载的资源,浏览器限制了JavaScript的权限,使其不能读、写返回的内容。

但XMLHttpRequest受到同源策略的约束,不能跨域访问资源,为了解决这一问题,W3C委员会制定了XMLHttpRequest跨域访问标准,它需要通过目标域返回的HTTP头来授权是否允许跨域访问,因此,这个跨域访问方案的安全基础就是信任JavaScript无法控制该HTTP头

2.2 浏览器沙箱

1.这种在网页中插入一段恶意代码,利用浏览器漏洞执行任意代码的工具方式,在黑客圈子里被形象地称为“挂马”。

2.Sandbox的设计目的一般是为了让不可信任的代码运行在一定的环境中,限制不可信任的代码访问隔离区之外的资源。

3.多进程架构最明显的一个好处是,相对于单进程浏览区,在发生崩溃时,多进程浏览器只会奔溃当前的Tab页,而单进程浏览器则会崩溃整个浏览器进程

2.3 恶意网站拦截

1.目前各个浏览器的拦截恶意网址的功能是基于“黑名单”的,一般是浏览器周期性地从服务器获取一份最新的恶意网址和名单,如果用户上网时访问的网址存在于此黑名单中,浏览器就会弹出一个警告页面。

2.常见的恶意网址分为两类:一类是挂马网址,这些网站通常包含有恶意的脚本如JavaScript或Flash,通过利用浏览器的漏洞(包括一些插件、控件漏洞)执行shellcode,在用户电脑中植入木马;另一类是钓鱼网站,通过模仿知名网站的相似页面来欺骗用户。

2.4 高速发展的浏览器安全

1.微软率先在IE8中推出了XSS Filter功能,用以反抗反射型XSS。当用户访问的URL中包含了XSS攻击的脚本时,IE就会修改其中的关键字符使得攻击无法成功完成,并对用户弹出提示框。

本时,IE就会修改其中的关键字符使得攻击无法成功完成,并对用户弹出提示框。

2.在Firefox 4中推出了Content Security Policy(CSP),其做法是由服务器端返回一个HTTP头,并在其中描述页面应该遵守的安全策略。但是CSP的规则配置较为复杂,在页面较多的情况下,很难一个个配置起来,且后期维护成本也非常巨大,这些原因导致CSP未能得到很好的推广。

猜你喜欢

转载自blog.csdn.net/qq_44528283/article/details/125917521