浏览器工作原理与实践02——浏览器安全

标签:无 1662人阅读 评论(0)

浏览器工作原理与实践02——浏览器安全

浏览器安全可以分为三大块——Web 页面安全、浏览器网络安全和浏览器系统安全。Web页面安全包括:同源策略、XSS和CSRF攻击,浏览器系统安全主要是安全沙箱,浏览器网络安全主要是HTTPS。

1. 同源策略

两个 URL 同源:如果两个 URL 的协议、域名和端口都相同

同源策略:浏览器默认两个相同的源之间是可以相互访问资源和操作 DOM 的。两个不同的源之间若想要相互访问资源或者操作 DOM,那么会有一套基础的安全策略的制约。

同源策略主要表现在 DOM、Web 数据和网络这三个层面。

1、DOM 层面。同源策略限制了来自不同源的 JavaScript 脚本对当前 DOM 对象读和写的操作;

2、数据层面。同源策略限制了不同源的站点读取当前站点的 Cookie、IndexDB、LocalStorage 等数据。由于同源策略,我们依然无法通过第二个页面的 opener 来访问第一个页面中的 Cookie、IndexDB 或者 LocalStorage 等内容;

3、网络层面。同源策略限制了通过 XMLHttpRequest 等方式将站点的数据发送给不同源的站点。

同源策略的安全性:

1. 页面中可以嵌入第三方资源:页面中可以引用第三方资源,不过这也暴露了很多诸如 XSS 的安全问题,因此又在这种开放的基础之上引入了 CSP 来限制其自由程度。

2. 跨域资源共享和跨文档消息机制:使用 XMLHttpRequest 和 Fetch 都是无法直接进行跨域请求的,因此浏览器又在这种严格策略的基础之上引入了跨域资源共享策略,让其可以安全地进行跨域操作;两个不同源的 DOM 是不能相互操纵的,因此,浏览器中又实现了跨文档消息机制,让其可以比较安全地通信。

2.跨站脚本攻击XSS

XSS 全称是 Cross Site Scripting,为了与“CSS”区分开来,故简称 XSS,翻译过来就是“跨站脚本”。XSS 攻击是指黑客往 HTML 文件中或者 DOM 中注入恶意脚本,从而在用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段。

恶意脚本都能做:(1)窃取 Cookie 信息;(2)监听用户行为;(3)修改 DOM;(4)在页面内生成浮窗广告。

通常情况下,主要有三种方式来注入恶意脚本:(1)存储型 XSS 攻击;(2)反射型 XSS 攻击;(3)基于 DOM 的 XSS 攻击。

常用的阻止 XSS 攻击的策略:(1)服务器对输入脚本进行过滤或转码;(2)充分利用 CSP;(3)使用 HttpOnly 属性。

3. CSRF攻击

CSRF 英文全称是 Cross-site request forgery,又称为“跨站请求伪造”,是指黑客引诱用户打开黑客的网站,在黑客的网站中,利用用户的登录状态发起的跨站请求。简单来讲,CSRF 攻击就是黑客利用了用户的登录状态,并通过第三方的站点来做一些坏事。

CSRF攻击方式:(1)自动发起 Get 请求;(2)自动发起 POST 请求;(3)引诱用户点击链接。

发起 CSRF 攻击的三个必要条件:(1)目标站点一定要有 CSRF 漏洞;(2)用户要登录过目标站点,并且在浏览器上保持有该站点的登录状态;(3)需要用户打开一个第三方站点,可以是黑客的站点,也可以是一些论坛。

与 XSS 攻击不同,CSRF 攻击不会往页面注入恶意脚本,因此黑客是无法通过 CSRF 攻击来获取用户页面数据的;其最关键的一点是要能找到服务器的漏洞,所以说对于 CSRF 攻击,主要的防护手段是提升服务器的安全性。

防止 CSRF 攻击方法:(1)充分利用好 Cookie 的 SameSite 属性;(2)验证请求的来源站点(Referrer和Origin);(3)CSRF Token。

4. 安全沙箱

浏览器被划分为浏览器内核和渲染内核两个核心模块,其中浏览器内核是由网络进程、浏览器主进程和 GPU 进程组成的,渲染内核就是渲染进程。

需要在渲染进程和操作系统之间建一道墙,即便渲染进程由于存在漏洞被黑客攻击,但由于这道墙,黑客就获取不到渲染进程之外的任何操作权限。将渲染进程和操作系统隔离的这道墙就是安全沙箱。

浏览器中的安全沙箱是利用操作系统提供的安全技术,让渲染进程在执行过程中无法访问或者修改操作系统中的数据,在渲染进程需要访问系统资源的时候,需要通过浏览器内核来实现,然后将访问的结果通过 IPC 转发给渲染进程。

安全沙箱最小的保护单位是进程。因为单进程浏览器需要频繁访问或者修改操作系统的数据,所以单进程浏览器是无法被安全沙箱保护的,而现代浏览器采用的多进程架构使得安全沙箱可以发挥作用。

图片 1.png

安全沙箱影响如下模块的功能:(1)持久存储;(2)网络访问;(3)用户交互。

5. HTTPS

使用 HTTP 传输的内容很容易被中间人窃取、伪造和篡改,这种攻击方式叫中间人攻击。具体来讲,在将 HTTP 数据提交给 TCP 层之后,数据会经过用户电脑、WiFi 路由器、运营商和目标服务器,在这中间的每个环节中,数据都有可能被窃取或篡改。

使用对称加密实现了安全层,但是由于对称加密的密钥需要明文传输,所以又将对称加密改造成了非对称加密。但是非对称加密效率低且不能加密服务器到浏览器端的数据,于是又继续改在安全层,采用对称加密的方式加密传输数据和非对称加密的方式来传输密钥,这样就解决传输效率和两端数据安全传输的问题。

采用这种方式虽然能保证数据的安全传输,但是依然没办法证明服务器是可靠的,于是又引入了数字证书,数字证书是由 CA 签名过的,所以浏览器能够验证该证书的可靠性。


查看评论

暂无评论

发表评论
  • 评论内容:
      
首页
团队介绍
发展历史
组织结构
MESA大事记
新闻中心
通知
组内动态
科研成果
专利
论文
项目
获奖
软著
人才培养
MESA毕业生
MESA在读生
MESA员工
招贤纳士
走进MESA
学长分享
招聘通知
招生宣传
知识库
文章
地址:北京市朝阳区华严北里甲22号楼五层 | 邮编:100029
邮箱:nelist@iie.ac.cn
京ICP备15019404号-1