Merge 36f60342b833c4a50b5b95f74458ed82878d01eb into af577a42e0e5686dc9393fc9f97d95703e966de1

This commit is contained in:
Zhangrong Huang 2020-11-02 00:50:22 +08:00 committed by GitHub
commit af4dd62b73
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 162 additions and 57 deletions

View File

@ -1,58 +1,87 @@
<!-- GFM-TOC --> <!-- GFM-TOC -->
* [ 基础概念](#-基础概念) - [ 基础概念](#-基础概念)
* [URI](#uri) - [URI](#uri)
* [请求和响应报文](#请求和响应报文) - [请求和响应报文](#请求和响应报文)
* [HTTP 方法](#二http-方法) - [1. 请求报文](#1-请求报文)
* [GET](#get) - [2. 响应报文](#2-响应报文)
* [HEAD](#head) - [HTTP 方法](#二http-方法)
* [POST](#post) - [GET](#get)
* [PUT](#put) - [HEAD](#head)
* [PATCH](#patch) - [POST](#post)
* [DELETE](#delete) - [PUT](#put)
* [OPTIONS](#options) - [PATCH](#patch)
* [CONNECT](#connect) - [DELETE](#delete)
* [TRACE](#trace) - [OPTIONS](#options)
* [HTTP 状态码](#三http-状态码) - [CONNECT](#connect)
* [1XX 信息](#1xx-信息) - [TRACE](#trace)
* [2XX 成功](#2xx-成功) - [HTTP 状态码](#三http-状态码)
* [3XX 重定向](#3xx-重定向) - [1XX 信息](#1xx-信息)
* [4XX 客户端错误](#4xx-客户端错误) - [2XX 成功](#2xx-成功)
* [5XX 服务器错误](#5xx-服务器错误) - [3XX 重定向](#3xx-重定向)
* [HTTP 首部](#四http-首部) - [4XX 客户端错误](#4xx-客户端错误)
* [通用首部字段](#通用首部字段) - [5XX 服务器错误](#5xx-服务器错误)
* [请求首部字段](#请求首部字段) - [HTTP 首部](#四http-首部)
* [响应首部字段](#响应首部字段) - [通用首部字段](#通用首部字段)
* [实体首部字段](#实体首部字段) - [请求首部字段](#请求首部字段)
* [具体应用](#五具体应用) - [响应首部字段](#响应首部字段)
* [连接管理](#连接管理) - [实体首部字段](#实体首部字段)
* [Cookie](#cookie) - [具体应用](#五具体应用)
* [缓存](#缓存) - [连接管理](#连接管理)
* [内容协商](#内容协商) - [1. 短连接与长连接](#1-短连接与长连接)
* [内容编码](#内容编码) - [2. 流水线](#2-流水线)
* [范围请求](#范围请求) - [Cookie](#cookie)
* [分块传输编码](#分块传输编码) - [1. 用途](#1-用途)
* [多部分对象集合](#多部分对象集合) - [2. 创建过程](#2-创建过程)
* [虚拟主机](#虚拟主机) - [3. 分类](#3-分类)
* [通信数据转发](#通信数据转发) - [4. 作用域](#4-作用域)
* [HTTPS](#六https) - [5. JavaScript](#5-javascript)
* [加密](#加密) - [6. HttpOnly](#6-httponly)
* [认证](#认证) - [7. Secure](#7-secure)
* [完整性保护](#完整性保护) - [8. Session](#8-session)
* [HTTPS 的缺点](#https-的缺点) - [9. 浏览器禁用 Cookie](#9-浏览器禁用-cookie)
* [HTTP/2.0](#七http20) - [10. Cookie Session 选择](#10-cookie--session-选择)
* [HTTP/1.x 缺陷](#http1x-缺陷) - [缓存](#缓存)
* [二进制分帧层](#二进制分帧层) - [1. 优点](#1-优点)
* [服务端推送](#服务端推送) - [2. 实现方法](#2-实现方法)
* [首部压缩](#首部压缩) - [3. Cache-Control](#3-cache-control)
* [HTTP/1.1 新特性](#八http11-新特性) - [4. 缓存验证](#4-缓存验证)
* [GET POST 比较](#九get--post-比较) - [内容协商](#内容协商)
* [作用](#作用) - [1. 类型](#1-类型)
* [参数](#参数) - [2. Vary](#2-vary)
* [安全](#安全) - [内容编码](#内容编码)
* [幂等性](#幂等性) - [范围请求](#范围请求)
* [可缓存](#可缓存) - [1. Range](#1-range)
* [XMLHttpRequest](#xmlhttprequest) - [2. Accept-Ranges](#2-accept-ranges)
* [参考资料](#参考资料) - [3. 响应状态码](#3-响应状态码)
- [分块传输编码](#分块传输编码)
- [多部分对象集合](#多部分对象集合)
- [虚拟主机](#虚拟主机)
- [通信数据转发](#通信数据转发)
- [1. 代理](#1-代理)
- [2. 网关](#2-网关)
- [3. 隧道](#3-隧道)
- [HTTPS](#六https)
- [加密](#加密)
- [1. 对称密钥加密](#1-对称密钥加密)
- [2.非对称密钥加密](#2非对称密钥加密)
- [3. HTTPS 采用的加密方式](#3-https-采用的加密方式)
- [认证](#认证)
- [完整性保护](#完整性保护)
- [HTTPS 的缺点](#https-的缺点)
- [HTTP/2.0](#七http20)
- [HTTP/1.x 缺陷](#http1x-缺陷)
- [二进制分帧层](#二进制分帧层)
- [服务端推送](#服务端推送)
- [首部压缩](#首部压缩)
- [HTTP/1.1 新特性](#八http11-新特性)
- [GET POST 比较](#九get--post-比较)
- [作用](#作用)
- [参数](#参数)
- [安全](#安全)
- [幂等性](#幂等性)
- [可缓存](#可缓存)
- [XMLHttpRequest](#xmlhttprequest)
- [参考资料](#参考资料)
<!-- GFM-TOC --> <!-- GFM-TOC -->
@ -223,6 +252,8 @@ CONNECT www.example.com:443 HTTP/1.1
- **500 Internal Server Error** 服务器正在执行请求时发生错误 - **500 Internal Server Error** 服务器正在执行请求时发生错误
- **502 Bad Gateway** : 作为网关或者代理工作的服务器尝试执行请求时从上游服务器接收到无效的响应
- **503 Service Unavailable** 服务器暂时处于超负载或正在进行停机维护现在无法处理请求 - **503 Service Unavailable** 服务器暂时处于超负载或正在进行停机维护现在无法处理请求
# HTTP 首部 # HTTP 首部

View File

@ -29,6 +29,44 @@
另一个用户浏览了含有这个内容的页面将会跳转到 domain.com 并携带了当前作用域的 Cookie如果这个论坛网站通过 Cookie 管理用户登录状态那么攻击者就可以通过这个 Cookie 登录被攻击者的账号了 另一个用户浏览了含有这个内容的页面将会跳转到 domain.com 并携带了当前作用域的 Cookie如果这个论坛网站通过 Cookie 管理用户登录状态那么攻击者就可以通过这个 Cookie 登录被攻击者的账号了
## 分类
XSS可分为三种不同的类型反射型XSS存储型XSS和DOM型XSS
### 反射型XSS
反射型XSS主要是攻击者将精心构造的带有恶意代码的URL发送给受害者受害者打开该连接后经过浏览器的渲染从而遭受攻击
### 存储型XSS
存储型XSS多出现于带有表单功能的页面如留言板攻击者提交带有恶意代码的数据后端程序未经处理直接插入数据库受害者用户在浏览该页面时后端程序从数据库查询数据未经处理直接传输给浏览器进行渲染导致受害者遭受攻击
### DOM型XSS
DOM型的XSS主要是特指攻击者插入的恶意代码修改了DOM环境而造成服务器响应的代码没有按照原有的逻辑执行DOM型的XSS没有对服务器响应的代码进行修改而是在客户端侧影响DOM环境而产生的攻击行为具体的例子如下
```html
<select><script>
document.write("<OPTION value=1>"+document.location.href.substring(document.location.href.indexOf("default=")+8)+"</OPTION>");
document.write("<OPTION value=2>English</OPTION>");
</script></select>
```
正常情况下的URL如下
```
http://www.some.site/page.html?default=French
```
而DOM型的XSS攻击构造的URL则是
```
http://www.some.site/page.html?default=<script>alert(document.cookie)</script>
```
## 危害 ## 危害
- 窃取用户的 Cookie - 窃取用户的 Cookie
@ -83,6 +121,14 @@ alert(/xss/);
&lt;/script&gt; &lt;/script&gt;
``` ```
### 3. 设置CSP(Content-Security-Policy)
CSP 本质上就是建立白名单开发者明确告诉浏览器哪些外部资源可以加载和执行我们只需要配置规则如何拦截是由浏览器自己实现的我们可以通过这种方式来尽量减少 XSS 攻击
通常可以通过两种方式来开启 CSP
- 设置 HTTP Header 中的 Content-Security-Policy
- 设置 meta 标签的方式
> [XSS 过滤在线测试](http://jsxss.com/zh/try.html) > [XSS 过滤在线测试](http://jsxss.com/zh/try.html)
# 跨站请求伪造 # 跨站请求伪造
@ -185,14 +231,42 @@ ResultSet rs = stmt.executeQuery();
分布式拒绝服务攻击distributed denial-of-service attackDDoS指攻击者使用两个或以上被攻陷的电脑作为僵尸向特定的目标发动拒绝服务式攻击 分布式拒绝服务攻击distributed denial-of-service attackDDoS指攻击者使用两个或以上被攻陷的电脑作为僵尸向特定的目标发动拒绝服务式攻击
## 分类
拒绝服务攻击大致可以分为两种
- 直接向目标发送大量报文造成目标资源耗尽
- 伪造请求报文的源IP地址受害者IP借助中间服务器将响应报文反射到受害目标这类称为**反射放大攻击**
## 防范手段
其实目前DDoS攻击仍然是让安全研究人员最头疼的一种攻击方式随着DDoS攻击的产业化只需向攻击服务提供者支付一定的费用攻击者即可发起大流量的DDoS攻击而一次大流量的DDoS攻击对于任何组织来说都是一次沉重的打击
现在针对DDoS攻击的不存在绝对有效的防御方法以下的防御措施仅供参考
### 1. 负载均衡
负载均衡技术可以有效的缓解单节点负载过大的问题可以借助负载均衡技术将请求报文分摊到多个服务器上进行处理假如一台服务器能够轻松处理10Gbps的流量10台服务器能够处理流量将大幅提升
### 2. 扩大带宽和使用硬件防火墙
针对于大企业来说处理大规模的流量问题并不是很大但是DDoS攻击会占用企业的带宽从而影响用户的正常使用因此面对突如其来的DDoS攻击提升带宽不失为一种紧急应对措施可是砸钱提升带宽只能缓一时之急
一些硬件防火墙具有检测小流量的DoS攻击和其他网络攻击的能力可以有效的防御一部分攻击
### 3. 流量牵引
在企业流量入口处做流量镜像借助机器学习模型和异常检测算法对入网流量进行实时分析在检测到发生DoS攻击时借助路由协议RIPOSPF和BGP将流量牵引到DoS流量清洗平台允许清洗后的流量入网
# 参考资料 # 参考资料
- [维基百科跨站脚本](https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%B6%B2%E7%AB%99%E6%8C%87%E4%BB%A4%E7%A2%BC) - [维基百科跨站脚本](https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%B6%B2%E7%AB%99%E6%8C%87%E4%BB%A4%E7%A2%BC)
- [维基百科SQL 注入攻击](https://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A) - [维基百科SQL 注入攻击](https://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A)
- [维基百科跨站点请求伪造](https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0) - [维基百科跨站点请求伪造](https://zh.wikipedia.org/wiki/%E8%B7%A8%E7%AB%99%E8%AF%B7%E6%B1%82%E4%BC%AA%E9%80%A0)
- [维基百科拒绝服务攻击](https://zh.wikipedia.org/wiki/%E9%98%BB%E6%96%B7%E6%9C%8D%E5%8B%99%E6%94%BB%E6%93%8A) - [维基百科拒绝服务攻击](https://zh.wikipedia.org/wiki/%E9%98%BB%E6%96%B7%E6%9C%8D%E5%8B%99%E6%94%BB%E6%93%8A)
- [DOM Based XSS](https://owasp.org/www-community/attacks/DOM_Based_XSS)
- [常见六大Web安全攻防解析](https://juejin.im/post/5c446eb1e51d45517624f7db#heading-1)
- [反射型 DDoS 攻击的原理和防范措施](https://blog.csdn.net/whatday/article/details/89453777)
- [浅谈DDoS攻防对抗中的AI实践](https://security.tencent.com/index.php/blog/msg/144)