上一篇机器学习的博客一直没给补完,然而我现在还是想再挖个坑,浏览器安全…
这周先补完,再开个论文总结和翻译系列吧。
言归正传,浏览器安全是归类到web安全中的。
想想安全行业里最多的就是搞Web安全的人,需求略大、门槛略低,以及这算是离“黑客”二字最近的技术了。说起来有些群里那些初高中的少年还真让我很是羡慕,我们都老了,年轻人才是祖国的未来啊~
我以前对Web安全的了解也停留在通过注入啊、上传啊这些手段“拿站”,还有owasp10。实际上它是有一个架构和体系的,总的来说,Web安全可以从客户端安全和服务器端安全两方面讨论。
浏览器安全属于Web安全中的客户端安全部分,当然,还有XSS、CSRF、点击劫持等都能算到客户端安全这一类中。而服务端安全包含了SQL注入、文件上传、配置安全、拒绝服务等问题。
分类来自《白帽子讲Web安全》,看看书的目录就能明白,这里就不上图了。
关于浏览器原理的文章:《How browsers work》经典
架构
浏览器大概分为以下几个部分,实际上,不同浏览器如chrome、firefox等的具体实现会有一些区别。
用户界面:与用户交互、接受用户操作。
浏览器引擎:提供接口(加载、刷新、后退等),操作渲染引擎。这样渲染引擎就与平台无关,可以移植了
渲染引擎:解析HTML和CSS,完成布局和显示。浏览器的核心,这个是要详细介绍的。
网络:协议解析,网络I/O等
JavaScript解释器:解析JS代码。也有XML的解释器,不单独列出了。
用户界面后端:用于绘制基本小部件(如组合框、窗口)。它暴露不是平台特定的通用接口。其下使用操作系统用户界面方法。
数据存储模块:存cookie、缓存、书签等。
Chrome从修改开源的Webkit,到自己的Blink渲染引擎;Firefox的Gecko;IE的trident。网上或多或少有些资料,可以看到这些内核在实现上、结构上都有一些区别。
去年微软新出了Edge,渲染引擎是EdgeHTML,JS引擎是Chakra,都是新的。其中Chakra已经开源。
比如chrome,从总体结构到各个模块的详细分析,深入研究的资料已经挺多了。所以本文主要对edge进行探索。