Merge pull request #122 from kwongtailau/master

Update HTTP.md
This commit is contained in:
CyC2018 2018-04-01 10:39:37 +08:00 committed by GitHub
commit d3ca581a01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -28,7 +28,7 @@
* [缓存](#缓存)
* [持久连接](#持久连接)
* [编码](#编码)
* [分块传输](#分块传输)
* [分块传输编码](#分块传输编码)
* [多部分对象集合](#多部分对象集合)
* [范围请求](#范围请求)
* [内容协商](#内容协商)
@ -172,7 +172,7 @@ DELETE /file.html HTTP/1.1
> 要求用隧道协议连接代理
要求在与代理服务器通信时建立隧道,使用 SSLSecure Sockets Layer安全套接层和 TLSTransport Layer Security传输层安全协议把通信内容加密后经网络隧道传输。
要求在与代理服务器通信时建立隧道,使用 SSLSecure Sockets Layer安全套接层和 TLSTransport Layer Security传输层安全协议把通信内容加密后经网络隧道传输。
```html
CONNECT www.example.com:443 HTTP/1.1
@ -430,9 +430,9 @@ Expires 字段也可以用于告知缓存服务器该资源什么时候会过期
编码Encoding主要是为了对实体进行压缩。常用的编码有gzip、compress、deflate、identity其中 identity 表示不执行压缩的编码格式。
## 分块传输
## 分块传输编码
分块传输Chunked Transfer Coding可以把数据分割成多块让浏览器逐步显示页面。
分块传输编码Chunked Transfer Coding可以把数据分割成多块让浏览器逐步显示页面。
## 多部分对象集合
@ -505,7 +505,7 @@ Content-Length: 1024
### 3. 隧道
使用 SSL 等加密手段,为客户端和服务器之间建立一条安全的通信线路。
使用 SSL 等加密手段,为客户端和服务器之间建立一条安全的通信线路。隧道本身不去解析HTTP请求。
# 六、HTTPs
@ -515,7 +515,7 @@ HTTP 有以下安全性问题:
2. 不验证通信方的身份,通信方的身份有可能遭遇伪装;
3. 无法证明报文的完整性,报文有可能遭篡改。
HTTPs 并不是新协议,而是 HTTP 先和 SSLSecure Socket Layer通信再由 SSL 和 TCP 通信。也就是说使用了隧道进行通信。
HTTPs 并不是新协议,而是 HTTP 先和 SSLSecure Sockets Layer通信再由 SSL 和 TCP 通信。也就是说使用了隧道进行通信。
通过使用 SSLHTTPs 具有了加密、认证和完整性保护。
@ -523,18 +523,18 @@ HTTPs 并不是新协议,而是 HTTP 先和 SSLSecure Socket Layer通信
## 加密
### 1. 对称密钥
### 1. 对称密钥加密
Symmetric-Key Encryption加密的加密和解密使用同一密钥。
对称密钥加密Symmetric-Key Encryption加密的加密和解密使用同一密钥。
- 优点:运算速度快;
- 缺点:密钥容易被获取。
<div align="center"> <img src="../pics//scrypt.gif" width=""/> </div><br>
### 2. 公开密钥
### 2. 公开密钥加密
Public-Key Encryption使用一对密钥用于加密和解密分别为公开密钥和私有密钥。公开密钥所有人都可以获得通信发送方获得接收方的公开密钥之后就可以使用公开密钥进行加密接收方收到通信内容后使用私有密钥解密。
公开密钥加密Public-Key Encryption使用一对密钥用于加密和解密分别为公开密钥和私有密钥。公开密钥所有人都可以获得通信发送方获得接收方的公开密钥之后就可以使用公开密钥进行加密接收方收到通信内容后使用私有密钥解密。
- 优点:更为安全;
- 缺点:运算速度慢;
@ -580,7 +580,7 @@ SSL 提供报文摘要功能来验证完整性。
### 1. 概念
Cross-Site Scripting, XSS可以将代码注入到用户浏览的网页上这种代码包括 HTML 和 JavaScript。利用网页开发时留下的漏洞通过巧妙的方法注入恶意指令代码到网页使用户加载并执行攻击者恶意制造的网页程序。攻击成功后攻击者可能得到更高的权限如执行一些操作、私密网页内容、会话和 Cookie 等各种内容。
跨站脚本攻击Cross-Site Scripting, XSS可以将代码注入到用户浏览的网页上这种代码包括 HTML 和 JavaScript。利用网页开发时留下的漏洞通过巧妙的方法注入恶意指令代码到网页使用户加载并执行攻击者恶意制造的网页程序。攻击成功后攻击者可能得到更高的权限如执行一些操作、私密网页内容、会话和 Cookie 等各种内容。
例如有一个论坛网站,攻击者可以在上面发表以下内容:
@ -627,7 +627,7 @@ SSL 提供报文摘要功能来验证完整性。
### 1. 概念
Cross-site request forgeryCSRF是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作如发邮件发消息甚至财产操作如转账和购买商品。由于浏览器曾经认证过所以被访问的网站会认为是真正的用户操作而去执行。这利用了 Web 中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
跨站点请求伪造Cross-site request forgeryCSRF是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作如发邮件发消息甚至财产操作如转账和购买商品。由于浏览器曾经认证过所以被访问的网站会认为是真正的用户操作而去执行。这利用了 Web 中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
XSS 利用的是用户对指定网站的信任CSRF 利用的是网站对用户网页浏览器的信任。