Skip to content

Commit

Permalink
Merge pull request CyC2018#122 from kwongtailau/master
Browse files Browse the repository at this point in the history
Update HTTP.md
  • Loading branch information
CyC2018 authored Apr 1, 2018
2 parents b6aa11f + 90d414f commit d3ca581
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions notes/HTTP.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
* [缓存](#缓存)
* [持久连接](#持久连接)
* [编码](#编码)
* [分块传输](#分块传输)
* [分块传输编码](#分块传输编码)
* [多部分对象集合](#多部分对象集合)
* [范围请求](#范围请求)
* [内容协商](#内容协商)
Expand Down Expand Up @@ -172,7 +172,7 @@ DELETE /file.html HTTP/1.1

> 要求用隧道协议连接代理
要求在与代理服务器通信时建立隧道,使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输
要求在与代理服务器通信时建立隧道,使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全协议)把通信内容加密后经网络隧道传输

```html
CONNECT www.example.com:443 HTTP/1.1
Expand Down Expand Up @@ -430,9 +430,9 @@ Expires 字段也可以用于告知缓存服务器该资源什么时候会过期

编码(Encoding)主要是为了对实体进行压缩。常用的编码有:gzip、compress、deflate、identity,其中 identity 表示不执行压缩的编码格式。

## 分块传输
## 分块传输编码

分块传输(Chunked Transfer Coding)可以把数据分割成多块,让浏览器逐步显示页面。
分块传输编码(Chunked Transfer Coding)可以把数据分割成多块,让浏览器逐步显示页面。

## 多部分对象集合

Expand Down Expand Up @@ -505,7 +505,7 @@ Content-Length: 1024

### 3. 隧道

使用 SSL 等加密手段,为客户端和服务器之间建立一条安全的通信线路。
使用 SSL 等加密手段,为客户端和服务器之间建立一条安全的通信线路。隧道本身不去解析HTTP请求。

# 六、HTTPs

Expand All @@ -515,26 +515,26 @@ HTTP 有以下安全性问题:
2. 不验证通信方的身份,通信方的身份有可能遭遇伪装;
3. 无法证明报文的完整性,报文有可能遭篡改。

HTTPs 并不是新协议,而是 HTTP 先和 SSL(Secure Socket Layer)通信,再由 SSL 和 TCP 通信。也就是说使用了隧道进行通信。
HTTPs 并不是新协议,而是 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信。也就是说使用了隧道进行通信。

通过使用 SSL,HTTPs 具有了加密、认证和完整性保护。

<div align="center"> <img src="../pics//ssl-offloading.jpg" width="700"/> </div><br>

## 加密

### 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),使用一对密钥用于加密和解密,分别为公开密钥和私有密钥。公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。

- 优点:更为安全;
- 缺点:运算速度慢;
Expand Down Expand Up @@ -580,7 +580,7 @@ SSL 提供报文摘要功能来验证完整性。

### 1. 概念

(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript。利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和 Cookie 等各种内容。
跨站脚本攻击(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript。利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和 Cookie 等各种内容。

例如有一个论坛网站,攻击者可以在上面发表以下内容:

Expand Down Expand Up @@ -627,7 +627,7 @@ SSL 提供报文摘要功能来验证完整性。

### 1. 概念

(Cross-site request forgery,CSRF),是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。这利用了 Web 中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
跨站点请求伪造(Cross-site request forgery,CSRF),是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作(如发邮件,发消息,甚至财产操作如转账和购买商品)。由于浏览器曾经认证过,所以被访问的网站会认为是真正的用户操作而去执行。这利用了 Web 中用户身份验证的一个漏洞:简单的身份验证只能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。

XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

Expand Down

0 comments on commit d3ca581

Please sign in to comment.