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 响应首部增加:

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,内容安全策略

黑客攻防技术宝典:浏览器实战篇 -- 上篇(笔记)相关推荐

  1. [web安全]黑客攻防技术宝典-浏览器实战篇--钓鱼攻击

    钓鱼攻击是获得用户敏感信息的一种方法.钓鱼攻击的目标通常是在线银行用户.PayPal.eBay等. 主要形式: 1.电子邮件钓鱼 群发邮件,欺骗用户点击恶意的链接或附件,获取有价值的信息. 2.网站钓 ...

  2. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序

    读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...

  3. 《黑客攻防技术宝典Web实战篇》.Dafydd.Stuttard.第2版中文高清版pdf

    下载地址:网盘下载 内容简介 编辑 <黑客攻防技术宝典(Web实战篇第2版)>从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,最后总结书中涵盖的主题.每章后还 ...

  4. 黑客攻防技术宝典web实战篇:核心防御机制习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注 ...

  5. 黑客攻防技术宝典Web实战篇 第2版 pdf

    下载地址:网盘下载 内容简介  · · · · · · 越来越多的关键应用现在已经迁移到网站上,这些Web应用的安全已经成为各机构的重要挑战.知己知彼,方能百战不殆.只有了解Web应用程序中存在的可被 ...

  6. 黑客攻防技术宝典Web实战篇第2版—第7章 攻击会话管理

    7.1 状态要求 1.HTTP是无状态的,基于请求-响应模型,每条消息代表一个独立的事物. 2.大多数Web站点实际为Web应用程序,他们允许用户注册登录,购买销售,记住用户喜好,它们可以根据用户的单 ...

  7. 黑客攻防技术宝典Web实战篇第2版—第6章 攻击验证机制

    6.1 验证技术 1.执行验证采用不同的技术 6.2 验证机制设计缺陷 6.2.1 密码保密性不强 1.应用程序常常使用的密码形式 6.2.2 蛮力攻击登录 6.2.3 详细的失败消息 1.尝试不同用 ...

  8. 黑客攻防技术宝典Web实战篇第2版—第5章 避开客户端控件

    5.1 通过客户端传送数据 5.1.1 隐藏表单字段 1.通过对表单中的数据隐藏,暗中更改数值,造成恶意攻击. 5.1.2 HTTP cookie 1.HTTPcookie是通过客户端传送数据的另一种 ...

  9. 黑客攻防技术宝典Web实战篇第2版—第4章 解析应用程序

    4.1 枚举内容与功能 4.1.1 Web抓取 1.利用爬虫可获取页面,即深度搜索技术. 4.1.2 用户指定的抓取 1.用户使用它通过标准浏览器以常规方式浏览应用程序,试图枚举应用程序的所有功能. ...

  10. 黑客攻防技术宝典Web实战篇第2版—第3章 Web应用程序技术

    3.1 HTTP 3.1.1 HTTP请求 1.所有HTTP消息(请求与响应)中都包含一个或几个单行显示的消息头,然后是一个空白行,最后是消息主体(可选). 2.每个HTTP请求的第一行由三部分组成 ...

最新文章

  1. ZED~Windows
  2. 用oracle列实现sqlserver的自增列
  3. Educational Codeforces Round 2 B. Queries about less or equal elements
  4. 用Tableau制作滚动时间轴(上)
  5. Matlab实用程序--图形应用-条形图形
  6. 为啥总让我“先去博客园其他网站逛逛”?
  7. Android studio 查找文件在电脑路径位置
  8. matlab常用函数辨析
  9. AWS:避免那些“神圣的法案”时刻的一些技巧
  10. LeetCode 665. 非递减数列(双指针)
  11. html横向导入word
  12. 或许是比力扣 leetcode 更好的选择?推荐两个编程算法宝藏网站
  13. cmd进入mysql界面的命令
  14. 会议直播方案 腾讯会议
  15. poEdit: Windows下的.po文件编辑器
  16. div可拖拽移动js方法
  17. java录入会员信息_Java编程语言基础 第三章 实现会员信息录入功能
  18. 云服务器(一)基本操作
  19. 客户机键盘某些键失灵
  20. intel RDT (Resource Director Technology) 管理LLC和内存带宽

热门文章

  1. 一张图,详解大数据技术架构
  2. 三菱Q系列ST、结构化编程、QD77定位以及转矩模式切换案例 三菱PLC程序案例
  3. JSP乱码(Tomcat和Weblogic)
  4. Vue学习之旅Part3:Vue的全局过滤器和私有过滤器
  5. NRF24L01模块使用(老干妈笔记)
  6. 思维导图有什么用?思维导图的优势、缺点及其适用人群详解
  7. php华文行楷,css设置中文字体
  8. 尚硅谷微服务分布式电商项目《谷粒商城》基础篇学习总结
  9. Java高并发编程实战6,通过AQS源码分析lock()锁机制
  10. 什么是接口测试,接口测试的目的,如何进行接口测试