auto commit

This commit is contained in:
CyC2018 2018-03-21 23:20:47 +08:00
commit 122d9f8d0f
2 changed files with 22 additions and 4 deletions

View File

@ -43,6 +43,7 @@
* [跨站脚本攻击](#跨站脚本攻击) * [跨站脚本攻击](#跨站脚本攻击)
* [SQL 注入攻击](#sql-注入攻击) * [SQL 注入攻击](#sql-注入攻击)
* [跨站点请求伪造](#跨站点请求伪造) * [跨站点请求伪造](#跨站点请求伪造)
* [拒绝服务攻击](#拒绝服务攻击)
* [八、各版本比较](#八各版本比较) * [八、各版本比较](#八各版本比较)
* [HTTP/1.0 与 HTTP/1.1 的区别](#http10-与-http11-的区别) * [HTTP/1.0 与 HTTP/1.1 的区别](#http10-与-http11-的区别)
* [HTTP/1.1 与 HTTP/2.0 的区别](#http11-与-http20-的区别) * [HTTP/1.1 与 HTTP/2.0 的区别](#http11-与-http20-的区别)
@ -588,6 +589,8 @@ Web 攻击的主要目标是使用 HTTP 协议的 Web 应用。
服务器上的数据库运行非法的 SQL 语句。 服务器上的数据库运行非法的 SQL 语句。
### 2. 攻击原理
例如一个网站登录验证的 SQL 查询代码为: 例如一个网站登录验证的 SQL 查询代码为:
```sql ```sql
@ -613,7 +616,7 @@ strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'
strSQL = "SELECT * FROM users;" strSQL = "SELECT * FROM users;"
``` ```
### 2. 危害 ### 3. 危害
- 数据表中的数据外泄,例如个人机密数据,账户数据,密码等。 - 数据表中的数据外泄,例如个人机密数据,账户数据,密码等。
- 数据结构被黑客探知,得以做进一步攻击(例如 SELECT * FROM sys.tables - 数据结构被黑客探知,得以做进一步攻击(例如 SELECT * FROM sys.tables
@ -622,7 +625,7 @@ strSQL = "SELECT * FROM users;"
- 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统(例如 xp_cmdshell "net stop iisadmin" 可停止服务器的 IIS 服务)。 - 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统(例如 xp_cmdshell "net stop iisadmin" 可停止服务器的 IIS 服务)。
- 破坏硬盘数据,瘫痪全系统(例如 xp_cmdshell "FORMAT C:")。 - 破坏硬盘数据,瘫痪全系统(例如 xp_cmdshell "FORMAT C:")。
### 3. 防范手段 ### 4. 防范手段
- 在设计应用程序时完全使用参数化查询Parameterized Query来设计数据访问功能。 - 在设计应用程序时完全使用参数化查询Parameterized Query来设计数据访问功能。
- 在组合 SQL 字符串时,先针对所传入的参数作字符取代(将单引号字符取代为连续 2 个单引号字符)。 - 在组合 SQL 字符串时,先针对所传入的参数作字符取代(将单引号字符取代为连续 2 个单引号字符)。
@ -650,16 +653,26 @@ XSS 利用的是用户对指定网站的信任CSRF 利用的是网站对用
### 2. 防范手段 ### 2. 防范手段
(一)检查 Referer 字段 **(一)检查 Referer 字段**
HTTP 头中有一个 Referer 字段这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时通常来说Referer 字段应和请求的地址位于同一域名下。 HTTP 头中有一个 Referer 字段这个字段用以标明请求来源于哪个地址。在处理敏感数据请求时通常来说Referer 字段应和请求的地址位于同一域名下。
这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的 Referer 字段。虽然 HTTP 协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其 Referer 字段的可能。 这种办法简单易行,工作量低,仅需要在关键访问处增加一步校验。但这种办法也有其局限性,因其完全依赖浏览器发送正确的 Referer 字段。虽然 HTTP 协议对此字段的内容有明确的规定,但并无法保证来访的浏览器的具体实现,亦无法保证浏览器没有安全漏洞影响到此字段。并且也存在攻击者攻击某些浏览器,篡改其 Referer 字段的可能。
(二)添加校验 Token **(二)添加校验 Token**
由于 CSRF 的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在 cookie 中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再执行 CSRF 攻击。这种数据通常是表单中的一个数据项。服务器将其生成并附加在表单中,其内容是一个伪乱数。当客户端通过表单提交请求时,这个伪乱数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪乱数,而通过 CSRF 传来的欺骗性攻击中,攻击者无从事先得知这个伪乱数的值,服务器端就会因为校验 token 的值为空或者错误,拒绝这个可疑请求。 由于 CSRF 的本质在于攻击者欺骗用户去访问自己设置的地址,所以如果要求在访问敏感数据请求时,要求用户浏览器提供不保存在 cookie 中,并且攻击者无法伪造的数据作为校验,那么攻击者就无法再执行 CSRF 攻击。这种数据通常是表单中的一个数据项。服务器将其生成并附加在表单中,其内容是一个伪乱数。当客户端通过表单提交请求时,这个伪乱数也一并提交上去以供校验。正常的访问时,客户端浏览器能够正确得到并传回这个伪乱数,而通过 CSRF 传来的欺骗性攻击中,攻击者无从事先得知这个伪乱数的值,服务器端就会因为校验 token 的值为空或者错误,拒绝这个可疑请求。
## 拒绝服务攻击
### 1. 概念
denial-of-service attackDoS亦称洪水攻击其目的在于使目标电脑的网络或系统资源耗尽使服务暂时中断或停止导致其正常用户无法访问。
distributed denial-of-service attackDDoS指攻击者使用网络上两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击。
> [维基百科:拒绝服务攻击](https://zh.wikipedia.org/wiki/%E9%98%BB%E6%96%B7%E6%9C%8D%E5%8B%99%E6%94%BB%E6%93%8A)
# 八、各版本比较 # 八、各版本比较
## HTTP/1.0 与 HTTP/1.1 的区别 ## HTTP/1.0 与 HTTP/1.1 的区别
@ -697,3 +710,4 @@ HTTP/1.1 的解析是基于文本的,而 HTTP/2.0 采用二进制格式。
- [维基百科:跨站脚本](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)

View File

@ -347,7 +347,11 @@ Terracotta 的基本原理是对于集群间共享的数据,当在一个节点
- 使用全局唯一 IDGUID。 - 使用全局唯一 IDGUID。
- 为每个分片指定一个 ID 范围。 - 为每个分片指定一个 ID 范围。
<<<<<<< HEAD
- 分布式 ID 生成器 (如 Twitter 的 [Snowflake](https://twitter.github.io/twitter-server/) 算法)。 - 分布式 ID 生成器 (如 Twitter 的 [Snowflake](https://twitter.github.io/twitter-server/) 算法)。
=======
- 分布式 ID 生成器(如 Twitter 的 [Snowflake](https://twitter.github.io/twitter-server/) 算法)。
>>>>>>> 5562eb6f332b07f22de533f697c87eb83906531a
# 参考资料 # 参考资料