第二章 浏览器安全 什么是同源策略?
同源策略,它是由Netscape提出的一个著名的安全策略。
现在所有支持JavaScript 的浏览器都会dao使用这个策略。
所谓同源是指,域名,协议,端口相同。
当一个浏览器的两个tab页中分别打开来 百度和谷歌的页面。
当浏览器的百度tab页执行一个脚本的时候会检查这个脚本是属于哪个页面的。
即检查是否同源,只有和百度同源的脚本才会被执行。
如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。
同源策略的作用:浏览器的同源策略,限制了来自不同源的文件或脚本,对当前文件读取或设置某些属性。
浏览器提出“Origin(源)”这一概念,来防止浏览器的页面行为发生混乱,不同源的对象无法互相干扰。
当a.com通过代码<script src=http://b.com/b.js ></script>加载了b.com上的b.js,但是由于b.js运行在a.com页面中,所以b.js的源就是a.com而非b.com(对当前页面而言)
当带“src”属性的标签需要跨站加载时,浏览器会发起一次GET请求。浏览器会限制其js的权限,使其不能读or写返回的内容。
如果XMLHttpRequest能跨域访问资源,则会导致敏感数据泄露,从而发生安全问题。
XMLHttpRequest跨域访问标准:通过目标域返回的HTTP头来授权是否允许。 方案安全基础:JS无法控制HTTP头。
浏览器沙箱(Sandbox):Sandbox设计目的:为了让不可信任的代码运行在一定的环境中,限制不可信任的代码访问隔离区之外的资源。emmmmm,有点像新冠隔离哈哈哈哈哈。
Google Chrome 的 Sandbox架构
多进程架构最明显的好处就是在浏览器发生崩溃时,多进程浏览器只会崩溃当前Tab页,对其他页面没有影响
2.3恶意网址拦截对处于“黑名单”的恶意网址进行拦截。常见的恶意网站:一类是挂马网站(这类网站通常包含恶意的脚本如JS或Flash,通过利用浏览器漏洞来执行shellcode,在电脑中植入木马);另一类钓鱼网站(通过模仿知名网站的相似页面来欺骗用户)。
主流浏览器开始支持EV SSL证书,以增强对安全网站的识别。
2.4高速发展的浏览器安全今天浏览器仍在不断更新,微软在IE8中推出的XSS Filter功能,可以修改XSS攻击的脚本中的关键字,使其攻击无效,并对用户弹出提示框。
使用CSP的方法如下,插入一个HTTP返回头:
X-Content-Security-Policy:policy
其中policy的描述很灵活,比如:
X-Content-Security-Policy:allow 'self' *.mydomain.com
这样浏览器将信任来自mydomain.com及其子域下的内容。
随着浏览器的发展,客户的浏览体验也越来越好,但随之而来的是许多看似“友好”的功能可能会导致一些安全隐患
例如许多浏览器地址栏会对畸形的URL进行处理,\abc会被识别为正常的
如果这类“友好”的功能被和黑客利用,可能会用于绕过一些安全软件或模块。
第三章 跨站脚本攻击(XSS)