白帽子讲web安全第二章笔记

来源:互联网 发布:胡公子淘宝店 编辑:程序博客网 时间:2024/05/21 06:29

同源策略

同源策略是浏览器最核心也最基本的安全功能。Web是构建在同源策略的基础之上,浏览器只是这对同源策略的一种体现。
其表现方式为不同源的对象无法相互干扰。

源的判断方式

影响源的因素有 host(域名或Ip地址),子域名,端口,协议(像http,https就是不同源的)

跨域加载

在浏览器中 <script><img><iframe>等带有src的标签都可以实行跨域加载资源,其本质是由浏览器发起的一次GET请求,但是浏览器限制了js的权限,使其不能读、写返回的内容。
举个栗子,比如说你用iframe标签引入了百度首页的界面,只通过你的页面是无法查看百度页面的源码的,你只能看见src="www.baidu.com"
除此之外,你也不能用你的js脚本控制百度首页。这是理所当然的,想想吧,万一你通过src引用百度首页就可以让你的脚本运行在百度上岂不是翻了天?(当然你也可以把百度首页的源码复制到你本地然后随便修改满足一下自己,虽然这种行为没有任何鸟用。。。)总之一句话,虽然你可以欣赏她,但你不能侵犯她,手动滑稽。

XmlHttpRequest

XmlHttpRequest是可以访问同源对象的内容的,但是他只能访问同源的内容,而无法跨域加载。(你可以自X但是你依旧不能X别人)

跨域访问请求

随着互联网业务的发展,跨域请求的需求也变得迫切起来,于是出现了一些用来处理跨域访问请求的方式。比如W3C提出的通过HTTP头来授权的方式(具体的方式没讲,说实话看到目前为止要我说这个不是火狐的那个CSP策略么。。。)
书中还提到过一个Flash的例子(虽然实在第三方插件的同源策略中提出来的,不过他确实也讲了跨域访问的功能。。。)书中说的Flash的跨域访问请求是通过一个叫crossdomain.xml的安全策略文件来确定自己是否能够查看该文件(也就是说在不同源的情况下只有该策略文件上记录的Host才能查看他的文件,你虽然不能随便碰人家,但是人家要是允许你碰的话,那就随你便了~~~)
在Flash9及之后的版本对其做了一些修正,比如说检测策略文件是否在根目录,检测HTTP头的Content-Type等方式避免验证被绕过。书中还举了一个IE8的CSS跨域漏洞,把html文件作为CSS文件加载,然后通过js以访问css文件内部属性的方式将里面的内容提了出来。

挂马

挂马说白了就是在网页中插入恶意代码,添加钓鱼网站链接或者广告,病毒什么的。

对抗挂马的方式

简单的说就是隔离,将不被信任的代码隔离到一个沙箱里,限制其访问其他文件的权利。
另一个对抗挂马和其他攻击的手段是浏览器的多进程架构,每个tab页面就是一个进程,一个页面的崩溃不会影响其他的页面(原来以前的浏览器一个界面崩了就直接退出浏览器了,震惊)
还有一种方式是恶意网址拦截,这个主要是因为挂马的人往往是在网页中插入恶意网址(广告,钓鱼网站什么的),然后就定期搞了那么一个黑名单,但是这么做的效率不高,后来就搞了个叫EVSSL证书的东西,估计是想做成像白名单那样的东西,现在虽然已经比较普遍了,但是好像有漏洞的样子(一个证书下可以弄出好多个子证书神马的)

高速发展的浏览器安全

到了这里基本上这章就讲完了,最后介绍了一下各大浏览器厂商的安全策略,其中火狐的CSP策略利用了js无法单独修改HTTP头的性质,使用自己的语法在HTTP头中插入安全策略,但是由于配置规则复杂维护成本巨大,导致未能广泛使用(当然我是不明白为什么的),还有IE8的自动修改XSS攻击脚本的关键字神马的

原创粉丝点击