Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >《黑客攻防技术宝典:浏览器实战篇》-- 上篇(笔记)

《黑客攻防技术宝典:浏览器实战篇》-- 上篇(笔记)

作者头像
爱学习的程序媛
发布于 2022-10-27 03:37:08
发布于 2022-10-27 03:37:08
70500
代码可运行
举报
文章被收录于专栏:学习/读书笔记学习/读书笔记
运行总次数:0
代码可运行

1. 浏览器安全概述

1.1 揭秘浏览器

1.1.1 与 Web 应用休戚相关

Web 浏览器的安全会影响 Web 应用的安全,反之亦然。

1.1.2 同源策略

同源策略是指对于不同的页面,它们的主机名、协议和端口都相同,它们资源之间的交互是不受限制的。

1.1.3 HTTP 首部

HTTP 首部是 HTTP 协议定义的原初指令,用于指示接收方怎么处理其后的内容。Web 客户端要在所有请求的开头提供 HTTP 首部,而 Web 服务器也要在任何响应的开头附上 HTTP 首部。

1.1.4 标记语言

标记语言是一种描述如何显示内容的方式。

1)HTML:是一种常用的编程语言,主要用于告诉浏览器如何显示网页。

2)XML也是 Web 上常用的一种标记语言,最常用的情形是把它作为 Web 服务之间(或者通过远程过程调用)交换数据的标准格式。

1.1.5 CSS

CSS,即 Cascading Style Sheets(层叠样式表),是浏览器为网页内容指定样式的主要方法。

1.1.6 脚本

1)JavaScript:支持函数式编程和面向对象编程。

2)VBScript:只有微软的浏览器才支持,几乎弃用了。

1.1.7 DOM

DOM,即 Document Object Model(文档对象模型), 是在浏览器中操作 HTML 或 XML 文档的 API,使用脚本语言可以通过 DOM 提供的对象操作 HTML 元素。

1.1.8 渲染引擎

渲染引擎(Rendering Engine)又叫布局引擎(Layout Engine)或浏览器引擎(Web Browser Engine),是浏览器的核心组件,负责把数据转换为用户在屏幕上可以看到的样式。渲染引擎有 WebKit、Blink、Trident、Gecko 等。

1.1.9 Geolocation

Geolocation API 是为移动和桌面浏览器访问设备地理位置信息而开发的,该 API 可以通过 GPS、蜂窝小区三角测量、IP 地理定位和本地 Wi-Fi 热点取得地理位置信息。

1.1.10 Web 存储

Web 存储有两种存储机制:一种可以将数据持久保存在本地,另一种只在会话期间保存数据。

本地存储(Local Storage)负责存储持久数据,用户多次访问都可以存取;会话存储(Session Storage)负责存储会话数据,只在创建该数据的标签页内有效。

Web 存储与 Cookie 的区别:

1)只有 JavaScript 可以创建 Web 存储,HTTP 首部不行;

2)Web 存储中的数据不会随请求发送给服务器;

3)Web 存储的数据量至少 5 MB,比 Cookie 多得多;

4)本地存储没有路径限制。

1.1.11 CORS(跨域资源共享)

CORS 是一个让来源忽略同源策略的规范,需要给 Web 服务器的 HTTP 响应首部增加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Access-Control-Allow-Origin: * 
Access-Control-Allow-Methods: POST, GET

1.1.12 HTML5

1)WebSocket:可以在浏览器与服务器之间打开一条即时响应的全双工信道。

2)Web Worker:可以看作在浏览器后台运行的线程,有两种:一种可以在同一来源的资源间共享,另一种只能与创建它的函数通信。

3)操作历史:使用历史对象,脚本可以添加或删除位置,也可以在历史链中向前或向后移动当前页面。

4)WebRTC:即 Web Real Time Communication(Web 实时通信),可以实现浏览器之间的互相通信,功能包括直接访问相机和音视频设备(用来支持音视频会议)。

1.1.13 隐患

隐患指容易被人攻击的功能。

1.2 浏览器在强化防御方面的安全特性

1.2.1 HTTP 首部

1)CSP(内容安全策略)

服务器会发送 CSP HTTP 首部 Content-Security-Policy 或 X-Content-Security-Policy,以规定可以从哪里加载脚本,同时还规定了对这些脚本的限制,比如是否允许执行JavaScript的eval()函数。

2)安全 Cookie 标志

主要目的是告诉浏览器不要通过任何不安全的渠道发送 Cookie,从而确保敏感的会话暗号无论何时何地都处于安全保护之中。

3)HttpOnly Cookie 标志

指示浏览器禁止任何脚本访问 Cookie 内容,可以降低通过 JavaScript 发起的 XSS 攻击偷取 Cookie 的风险。

4)X-Content-Type-Options

浏览器可以使用各种检测技术判断服务器返回了什么类型的内容,然后浏览器会执行一些与该内容类型相关的操作。而 nosniff 指令可以禁用浏览器的上述行为,强制浏览器按照 Content-type 首部来渲染内容。

5)Strict-Transport-Security

指示浏览器必须通过有效的 HTTPS 通道与网站通信。

6)X-Frame-Options

用于阻止浏览器中的页面内嵌框架,浏览器看到这个首部后,不把接收到的页面显示在一个 IFrame 中,目的是防止发生界面伪装(UI Redressing)攻击,如点击劫持(Clickjacking)。

1.2.2 反射型 XSS 过滤

浏览器会尝试被动地发现已经成功的反射型 XSS 攻击,然后尝试清除响应中的脚本,阻止它们执行。

1.2.3 沙箱

是一个解决现实问题的折中方案,基本前提是浏览器会遭受威胁,并且可能被攻击者控制。

沙箱本质上不过是缓兵之计,它把浏览器的高危区域封装在安全围墙之下,把注意力吸引到较小的攻击面上。

1)浏览器沙箱

它隔离的是操作系统赋予浏览器的权限和在浏览器中运行的子进程的权限。

2)IFrame 沙箱

指的是给这个嵌入的帧添加一个 HTML5 属性,添加这个属性后,就不能在其中使用表单、执行脚本,也不能导航到顶层页面,而且只能限于与一个来源通信。

1.2.4 反网络钓鱼和反恶意软件

浏览器会在访问网站时,将其与恶意站点名单进行对照,如果检测到要访问的网站是一个钓鱼网站,浏览器就会采取措施。

1.2.5 混入内容

所谓混入内容(Mixed Content),是指某个来源使用 HTTPS 协议,然后又通过 HTTP 请求内容。

1.3 核心安全问题

1.3.1 攻击面

指的是浏览器容易遭受未信任来源攻击影响的范围。

1)升级速度

从浏览器安全 Bug 被爆出之日起到这个 Bug 被修复期间,大多数组织的浏览器都处于容易被攻击的状态。

2)静默更新

如果浏览器在后台更新和新增功能时出现问题,就可能增大每个浏览器的攻击面。

3)扩展

每个扩展都可能成为攻击者的目标,因而它们会增大浏览器的攻击面。

4)插件

插件会大幅度增加攻击面,它们既能增强浏览器功能,又为黑客提供了攻击目标。

1.3.2 放弃控制

浏览器必须将很大一部分控制权让渡给服务器,浏览器必须执行收到的命令,否则就有可能无法正确渲染页面。

浏览器不安全以及容易受攻击,正是因为无法实时保证来自远程服务器的内容的可靠性。

1.3.3 TCP 协议控制

对攻击者而言,几乎可以不受限制地攻击 HTTP 协议或特定系统,再加上其他相关因素,就可能构成不同的攻击。

1.3.4 加密通信

浏览器支持的加密通信可以为攻击者所用,让他们私藏恶意指令,并安全地转移战利品。

1.3.5 同源策略

某些功能违背 SOP,那么本来合法的功能就可能成为敌人,因为它们会穿越安全区。

1.3.6 谬论

1)健壮性法则谬论

健壮性法则,即“发送时要保守,接收时要开放”。浏览器对自己要渲染的内容是极其开放的,这也是 XSS 为何难以根除的原因。

2)外围安全防线谬论

一个组织的内部网是一个经常要与攻击者玩打地鼠游戏的地方。现实情况是,浏览器提供了很多洞洞,就像直接在高高的围墙上面打开了很多口子。防护围墙因此会被间接攻破,难以阻拦浏览器带到围墙内的敌人。

专业术语:

SOE:Standard Operating Environment,标准运行环境

SOP:Same Origin Policy,同源策略

CORS:Cross Origin Resource Sharing,跨域资源共享

CSP:Content Security Policy,内容安全策略

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爱学习的程序媛 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于浏览器安全,你需要知道的那些知识点!
HTTP首部用来规定封装的包应该转往何处,接收方应该如何处理此包。首部内容决定了接受方如何处理被发送的内容,有些首部字段是必需的,有些首部字段是可选的,而有些首部字段是为了提供额外信息而用的
网络安全自修室
2022/12/06
5570
关于浏览器安全,你需要知道的那些知识点!
「面试常问」靠这几个浏览器安全知识顺利拿到了大厂offer(实践篇)
比如,这个 http://store.company.com/dir/page.html 和下面这些 URL 相比源的结果如下:
用户4456933
2021/06/01
9540
「面试常问」靠这几个浏览器安全知识顺利拿到了大厂offer(实践篇)
阶段七:浏览器安全
32 | 同源策略:为什么XMLHttpRequest不能跨域请求资源–Web页面安全 浏览器安全分为三大块:Web页面安全、浏览器网络安全、浏览器系统安全。 同源策略 页面中最基础、最核心的安全策略:同源策略(same-origin policy) 如果两个URL协议相同、域名相同、端口相同,就称为这两个URL同源 同源策略就是说:相同源之间可以操作DOM、读取互相之间的Cookie、indexDB、locationStorage等页面数据以及网络层面共享。 也就解释了为什么同源策略限制了X
六个周
2022/10/28
5320
浏览器原理学习笔记07—浏览器安全
协议、域名 和 端口 都相同的两个 URL 同源,默认可以相互访问资源和操作 DOM,两个不同源之间通过安全策略制约隔离 DOM、页面数据和网络通信来保障隐私和数据安全。
CS逍遥剑仙
2020/05/02
1.7K0
浏览器安全机制
而【WebKit 技术内幕】是基于 WebKit 的 Chromium 项目的讲解。
夜尽天明
2019/11/13
7590
浏览器安全机制
浏览器工作原理 - 安全
浏览器默认两个相同的源之间是可以相互访问资源和操作 DOM 的。两个不同源之间要相互访问或者操作 DOM,会有一套基础的安全策略制约,即同源策略。
Cellinlab
2023/05/17
6460
浏览器工作原理 - 安全
浏览器特性
window.onload 事件表示页面加载完成后才加载 JavaScript 代码。这里的 “页面加载完成” 指的是在文档装载完成后会触发 load 事件,此时,在文档中的所有对象都在 DOM 中,所有图片,脚本,链接以及子框都完成了装载。而 img.onload 仅仅指的是图片装载完成。
多云转晴
2020/04/08
1.5K0
浏览器特性
【全栈修炼】414- CORS和CSRF修炼宝典
核心知识: CORS是一个W3C标准,它允许浏览器向跨源服务器,发出XMLHttpRequest 请求,从而克服 AJAX 只能同源使用的限制。
pingan8787
2019/11/26
3.3K0
【全栈修炼】414- CORS和CSRF修炼宝典
绕过Edge、Chrome和Safari的内容安全策略
概述 ---- Web应用中有许多基本的安全机制,其中一个是同源(same-origin)策略机制,该机制规定了应用程序代码可以访问的资源范围。同源策略的基本思想是,源自于某台服务器上的代码只能访问同一台服务器上的web资源。 比如,在Web浏览器上下文中执行的某个脚本,如果其来源服务器为good.example.com,那么它就可以访问同一台服务器上的数据资源。另一方面,根据同源策略的思想,来自evil.example.com的另一个脚本不能访问good.example.com上的任何数据。
奶糖味的代言
2018/04/16
2.7K0
浏览器安全(上)
对于浏览器用户来说,访问网络资源只需要一台个人终端,终端有可运行浏览器的操作系统、浏览器应用、连通互联网,互联网连接可用的服务,这便是整体运行环境,其中任何环节被攻击都有可能带来安全问题,根据上诉描述,从微观到宏观、从局部到整体来对安全分类
醉酒鞭名马
2020/06/08
2.2K1
浏览器安全(上)
【全栈修炼】CORS和CSRF修炼宝典
1. [《【全栈修炼】OAuth2修炼宝典》](https://juejin.im/post/5db90c0ae51d452a17370626)
pingan8787
2019/11/17
2K0
Web 安全总结(面试必备良药)
利用漏洞提交恶意 JavaScript 代码,比如在input, textarea等所有可能输入文本信息的区域,输入<script src="http://恶意网站"></script>等,提交后信息会存在服务器中,当用户再次打开网站请求到相应的数据,打开页面,恶意脚本就会将用户的 Cookie 信息等数据上传到黑客服务器。
winty
2019/12/21
1K0
黑客攻防技术宝典Web实战篇
1.针对Web应用程序的最严重攻击,是那些能够披露敏感数据或获取对运行应用程序的后端系统的无限访问权限的攻击
硬核项目经理
2019/08/06
2.5K0
如何进行渗透测试XSS跨站攻击检测
国庆假期结束,这一节准备XSS跨站攻击渗透测试中的利用点,上一节讲了SQL注入攻击的详细流程,很多朋友想要咨询具体在跨站攻击上是如何实现和利用的,那么我们Sinesafe渗透测试工程师为大家详细的讲讲这个XSS是如何实现以及原理。
技术分享达人
2019/10/08
2.9K0
如何进行渗透测试XSS跨站攻击检测
浏览器跨域限制概述
所谓浏览器跨域限制,其实是为了数据安全的考虑由Netscape提出来限制浏览器访问跨域数据的策略。 这是一种约定,正式叫法为“浏览器同源策略”,目前已经在大多数浏览器中支持。
编程随笔
2019/09/11
3K0
浏览器跨域限制概述
攻击者现可绕过MicrosoftEdge、Google Chrome和Safari的内容安全策略
就在前两天,Talos发布了Microsoft Edge浏览器的安全漏洞细节,受此漏洞影响的还包括旧版本Google Chrome(CVE-2017-5033)以及基于Webkit的浏览器(例如苹果的
FB客服
2018/03/01
9690
攻击者现可绕过MicrosoftEdge、Google Chrome和Safari的内容安全策略
使用浏览器作为代理从公网攻击内网
在 Forcepoint,我们不断寻求改善我们产品所提供的防护。为此,我们经常研究不寻常或潜在新颖的攻击技术。最近的一个研究课题是从公网发起的针对 localhost 和内网的攻击。
madneal
2019/11/27
1.4K0
浏览器知识
在前端开发中,性能一直都是被大家所重视的一点,然而判断一个网站的性能最直观的就是看网页打开的速度。其中提高网页反应速度的一个方式就是使用缓存。缓存技术一直一来在WEB技术体系中扮演非常重要角色,是快速且有效地提升性能的手段。 一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并且由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。 所以,缓存技术是无数WEB开发从业人员在工作过程中不可避免的一大问题。在产品开发的时候我们总是想办法避免缓存产生,而在产品发布之时又在想策略管理缓存提升网页的访问速度。了解浏览器的缓存命中原理,是开发WEB应用的基础
EchoROne
2022/08/15
6040
浏览器知识
XSS的一些基本概念
若两个URL 协议,端口,host都相同,则这两个URL同源。 这个方案叫做“协议/主机/端口元组”,或者直接是 “元组”
ConsT27
2022/02/11
1.2K0
XSS的一些基本概念
【愚公系列】2023年03月 其他-Web前端基础面试题(http_20道)
http: 超文本传输协议,是互联网上应用最为广泛的一种网络协议,是一个客户端和服
愚公搬代码
2023/03/16
7460
相关推荐
关于浏览器安全,你需要知道的那些知识点!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验