白帽子讲web安全读书笔记(Ⅱ)
二.客户端脚本安全----浏览器安全
1.同源策略(Same Origin Policy):DOM,Cookie,XMLHttpRequest,Flash,Java Applet等
浏览器的同源策略,限制了来自不同源的document或脚本,对当前document读取或设置某些属性,确保来自不同Origin的对象无法相互干扰。是浏览器安全的基础。
如JavaScript的同源策略:host,子域名,端口,协议完全相同才算同源。
a.标签
通过<script><img><iframe><link>等标签的src属性可以跨域加载资源,实际上是浏览器发出了一次GET请求,不受同源策略限制,这样加载的资源的origin属于其运行页面的url,而非资源本身的url。加载的JavaScript不能读、写返回的内容。
b.XMLHttpRequest
可访问同源对象的内容,默认不能跨域,否则会导致敏感数据泄露,如Token。基于信任“JavaScript无法控制HTTP头”,目标域返回的HTTP可以授权是否允许XMLHttpRequest跨域访问。
c.Flash
网站提供crossdomain.xml文件判断当前源是否允许当前“源”的Flash跨域访问目标资源。Flash9 之后还实现MIME检查确认crossdomain.xml的合法性,以及crossdomain.xml是否在根目录下,防止攻击者上传crossdomain.xml文件绕过同源策略。
2.浏览器沙箱
Google Chrome是首个采取多进程架构的浏览器(浏览器进程,渲染进程,插件进程,扩展进程)。
多架构的好处:
1.安全性
渲染进程由Sandbox隔离,网页代码与浏览器内核、操作系统通信都要通过IPC Channel,其中会有一些安全检查。(将不可信任的代码隔离起来)
但加载的第三方插件不受Sandbox管辖,Flash、Java、PDF、.Net Framework都是浏览器攻击的热点。
2.稳定性
发生崩溃时只会影响一个Tab页,其他页面不受影响。
3.恶意网址拦截
恶意网址:
1.挂马。包含如JavaScript或Flash的恶意脚本,利用浏览器漏洞执行shellcode,向用户植入木马。
2.钓鱼。模仿知名网站的相似页面窃取信息。
拦截方法:
1.黑名单。 PhishTank、Google的SafeBrowsingAPI。
2.白名单。EVSSL证书,全球数字证书颁发机构和浏览器厂商一起打造的增强型证书。