目录
1.同源策略
同源策略是一种约定,它是浏览器最核心也是最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能会受到影响。浏览器的同源策略限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。如果不存在同源策略的情况下,可能a.com的一段js脚本即使没有在b.com加载时也可以对b.com的页面进行随意修改,所以为了防止此情况的发生,浏览器提出了“Origin”的概念,来自不同的Origin对象无法相互干扰。
对JS来说,以下情况被认为是同源或不同源的
URL | Outcome | Reason |
http://store.company.com/dir2/other.html | success | |
http://store.company.com/dir/inner/another.html | success | |
https://store.company.com/secure.html | Faliure | different protocol |
http://store.company.com:81/dir/etc.html | Faliure | different port |
http://news.company.com/dir/other.html | Faliure | different host |
由表可以看出,对JS来说不同的协议,端口,域名都会被看作是来自不同的源。对于浏览器来说,除了DOM,Cookie,XMLHttpRequest会受到同源策略的限制外,浏览器加载的一些第三方插件也有各自的同源策略,常见的有 Flash,Java,Applet,Silverlight,Google Gears等。
2.浏览器沙箱
浏览器沙箱也被指为“资源隔离类模块”,浏览器沙箱设计目的是为了让不可信任的代码运行在一定的环境中,限制不可信任的代码访问隔离区以外的资源。如果一定要跨越沙箱产生数据交换,则智能通过指定的数据通道,比如经过封装的API来完成,在这些API中会严格检查请求的合法性。沙箱机制可以让不受信任的网页代码,JS代码运行在一个受限制的环境中,从而保护本地环境的安全。
3. 恶意网址拦截
恶意网址拦截功能都是基于黑名单的功能来实现的,一般都是浏览器周期性的从服务端获取一份最新的恶意网址黑名单,如果用户上网时访问的网址存在于此黑名单中,浏览器就会弹出一个警告页面。常见的恶意网址分为两类 :一类是挂马网站,这些网站通常包含有恶意脚本如JS或Flash,通过利用浏览器的漏洞(包括一些插件,控件漏洞)来执行shellcode,在用户电脑中植入木马病毒;另一类则是钓鱼网站,通过模仿知名网站的相似页面来欺骗用户。
除了恶意网址拦截以外,主流的浏览器还支持EV SSL证书以增强对安全网站的识别。EV SSL证书是全球数字证书颁发机构于浏览器厂商一起打造的增强型证书,其主要特色是浏览器会给予EVSSL证书特殊待遇。EVSSL证书也遵循X509标准,并向前兼容普通证书,如果浏览器不支持EV模式则会将其当作普通证书,若支持则会在地址栏特别标注