白帽子讲web安全(精写含思维导图)

写在前面

重要的事多说几遍

本文对学习基础、面试、了解安全都有辅助的作用
觉得本文对您有帮助的朋友们,请您动动小手点赞、收藏加关注哦~
觉得本文对您有帮助的朋友们,请您动动小手点赞、收藏加关注哦~
觉得本文对您有帮助的朋友们,请您动动小手点赞、收藏加关注哦~

本文一共9150字,预计阅读时间50分钟

脑图地址,一切从这里开始

白帽讲Web安全脑图


目录

  • 写在前面
    • 重要的事多说几遍
    • 脑图地址,一切从这里开始
  • 第一篇 世界观安全
    • 第一章 我的世界安全观
      • 1.1 Web安全简史
      • 1.2 黑帽子,白帽子
      • 1.3 返璞归真,揭秘安全的本质
      • 1.5 安全三要素
        • 机密性
        • 完整性
        • 可用性
      • 1.6 如何实施安全评估
        • 资产等级划分
        • 威胁分析(威胁建模STRIDE模型)
          • Spoofing(伪装)
          • Tampering(篡改)
          • Repudiation(抵赖)
          • InformationDisclosure(信息泄露)
          • Denial of Service(拒绝服务)
          • Elevation of Privilege(提升权限)
        • 风险分析
        • 设计安全方案
      • 1.7 白帽子兵法
        • Secure By Default 原则
        • 纵深防御原则
        • 数据与代码分离(数据就是数据,不能被执行为代码)
        • 不可预测性-->加密算法、随机数、哈希(随机数,比如抓取页面id=随机数,防止csrf的随机数token)
  • 第二篇 客户端脚本安全
    • 第二章 浏览器安全
      • 2.1 同源策略
      • 2.2 浏览器沙盒
      • 2.4 高速发展的浏览器安全
    • 第三章 跨站脚本攻击
      • 3.1 简介
        • 反射型XSS
        • 存储型XSS
        • DOM型XSS
      • 3.2 XSS攻击进阶
        • 攻击手段
      • XSS攻击技巧
      • XSS网站设计的防御
    • 第四章 跨站点请求位置(CSRF)
      • 攻击手段
      • 防御手段
        • 验证码
        • Referer Check
        • TokenCSRF
    • 第五章 点击劫持
      • 防御
    • 第六章 HTML5安全
      • HTML 5 新标签
        • iframe的sandbox
        • noreferer(referer是指之歌这个请求的来源是哪一个网站 有防盗、防止恶意请求)
        • Canvas
      • 其他安全问题
        • 跨域新技巧
          • postMessage
        • Web Storage
  • 第三篇 服务器端应用安全
    • 第七章 注入攻击
      • SQL注入
        • SQL注入
          • SQL注入攻击的两个条件
          • 回显
          • 盲注
            • 布尔盲注
            • 时间盲注
            • Timing Attack
        • 数据库攻击技巧
          • lib_mysqludf_sys提供的几个函数
          • xp_cmdshell
          • 宽字符攻击(未考虑双字节字符的问题)
          • SQL Column Truncaton
        • 正确防御SQL注入
      • 其他注入攻击
    • 第八章 文件上传漏洞
      • FCKEditor文件上传漏洞
      • 绕过
      • 各类系统的文件解析问题
        • apache解析漏洞
        • IIS6文件解析漏洞
        • PUT方法
      • 防御
        • 文件上传的目录设置为不可执行
        • 判断文件类型
        • 使用随机数
    • 第九章 认证与会话管理
      • 认证与授权
        • 目的
        • MD5
      • Session与认证
      • Session Fixation攻击
      • Session保持攻击
      • 单点登录 SSO
        • OpenID
    • 第十章 访问控制
      • 垂直权限
      • 水平权限
      • OauthOAuth
    • 第十一章 加密算法与随机数
      • 加密攻击
        • 唯密文攻击
        • 已知明文攻击
        • 选择明文攻击
        • 选择密文攻击
      • 密码学里的基本原则
      • 伪随机数问题
    • 第十二章 Web框架安全
    • 第十三章 应用层拒绝服务攻击
      • 定义
      • 三次握手的缺陷
      • 应用层DDOS攻击
        • CC攻击
        • 验证码
        • 防御DDOS——增加人机认证
        • 资源耗尽攻击
          • Slowloris
          • HTTP POST DOS
          • Server Limit DOSWeb Server
    • 第十四章 PHP安全
      • 文件包含漏洞
        • 使用方法
        • 原理
        • 远程文件包含
        • 文件包含使用方法
        • 远程文件包含使用方法
      • 变量覆盖漏洞
        • 实现
    • 第十五章 Web Server配置安全
      • Apache安全
        • 使用root或者是admin权限运行Apache的结果可能是灾难性的
      • Nginx安全
  • 第四篇 互联网公司安全运营
    • 第十六章 互联网业务安全
      • 产品需要什么样的安全
        • 什么是好的安全方案
      • 业务逻辑安全
      • 邮箱钓鱼
    • 第十七章 安全开发流程
      • 需求分析与设计
      • 开发阶段
      • 测试阶段
    • 第十八章 安全运营
      • 安全监测
      • 入侵检测
      • 紧急响应
  • 脑图


第一篇 世界观安全


第一章 我的世界安全观


1.1 Web安全简史

在Web发展初期由于对安全问题认知认识不足,导致发生过许多的安全问题,且遗留下许多历史问题:如PHP语言至今只能依靠较好的代码规范来防范文件包含漏洞,而无法从语言本身来杜绝此类安全问题的发生。常见的安全漏洞:SQL注入、XSS攻击、CSRF。

1.2 黑帽子,白帽子

白帽子是指那些精通安全技术,工作在反黑客领域的专家们,他们的工作出发点是解决所有的安全问题,所以他们看待问题的方面更加全面、宏观。黑帽子是指使用黑客技术对网络进行破坏、甚至是进行犯罪的群体,他们的主要目的是入侵系统,找到对他们有效的数据,因此他们只需要以点为突破,找到对他们最有利的一点进行渗透,所以他们思考问题的方向是有选择性的、微观的。

1.3 返璞归真,揭秘安全的本质

通过一个安全检查的过程,梳理未知的人或物,将其划分为不同的信任级别的区域,两个不同信任域之间的边界叫做信任边界。
安全问题的本质是信任问题。安全方案的设计基础是建立在信任关系之上的,例如保管文件的“锁”,你得确保锁的工匠是信任的,他没有私自保管一把额外的钥匙;抽屉的工匠失是信任的,他没有给抽屉安装后门;钥匙也需要保管在一个安全不会出现问题的地方。

1.5 安全三要素

机密性

保护数据内容不会泄露,加密是完成机密性的常见手段。

完整性

要求保护数据内容是完整的、没有被篡改的。常见的保证一致性的手段是数字签名。

可用性

保护资源“随需而得。例如:防范DOS攻击。

他们在安全领域还可以扩充增加可审计性、不可抵赖性等,但最重要、最基本的还是机密性、完整性、可用性。

1.6 如何实施安全评估

资产等级划分

明确工作的目标是什么,要保护什么。互联网的核心问题是数据安全的问题,对互联网公司的资产进行等级划分就是对数据做等级划分。有的公司关心客户数据,有的公司关心员工资料信息,所以根据公司的业务的不同,对其进行的侧重点也不同。

威胁分析(威胁建模STRIDE模型)

Spoofing(伪装)

冒充他人身份

Tampering(篡改)

修改数据或代码

Repudiation(抵赖)

否认做过的事

InformationDisclosure(信息泄露)

机密信息泄露

Denial of Service(拒绝服务)

拒绝服务

Elevation of Privilege(提升权限)

未经授权获得许可

风险分析

白帽子讲web安全(精写含思维导图)_第1张图片
根据风险因素所对应的权重进行相加算出权值将12-15分之间的定义为高威胁。将8-11分之间的定义为中威胁。将0-7分之间的定义为低威胁。

设计安全方案

针对资产等级划分、威胁分析、风险分析阶段评估出一个合适的解决方案。

1.7 白帽子兵法

Secure By Default 原则

制定黑名单、白名单。白名单相较于黑名单来说更安全,但白名单并不是完全安全的,因为安全建立与信任,白名单中若出现不安全的名单那么信任列表将会变得不可信。

最小权限原则授予主体必要的权限,不要过度授权,这样能有效的减少系统、网络、应用、数据库出错的机会。

纵深防御原则

从不同层面、不同角度对系统做出整体的解决方案,而不是一个安全方案做两遍或者是多遍(木桶理论)。

在正确的地方做正确的事,防止造成”乌龙“(例如XSS过滤关键字可能会过滤“1<2”->”1 2“.

数据与代码分离(数据就是数据,不能被执行为代码)

不可预测性–>加密算法、随机数、哈希(随机数,比如抓取页面id=随机数,防止csrf的随机数token)


第二篇 客户端脚本安全


第二章 浏览器安全


2.1 同源策略

同源策略限制了来自不同源(origin)的文档和脚本。这一策略极其重要,如果没有同源策略,可能a.com的一段JS脚本,在b.com未曾加载此脚本时,也可以随意修改b.com的页面(在浏览器显示中)。为了不发生混乱,浏览器提出“Origin”(源)的概念。来自不同Origin的对象无法相互干扰。

白帽子讲web安全(精写含思维导图)_第2张图片

从上表可以看出,影响”源”的因素有:

1.host(域名或IP地址)
2.子域名
3.端口
4.协议

需要注意的是,对于当前页面来说,页面内存放JS文件的域并不重要,重要的是加载JS的页面所在的域是什么。举例说明:
a.com通过代码加载了b.com上的b.js。因为b.js是运行在a.com上的,所以b.js的域就是a.com。
在浏览器中,<script>