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