15 June 2018

XSS攻击

XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),XSS 就是攻击者在 Web 页面中插入恶意脚本,当用户浏览页面时,促使脚本执行,从而达到攻击目的。

XSS,是WEB应用程序中最常见到的攻击手段之一。

简单防御措施:

1.转义用户输入数据。

php 常用函数: addslashes($str) ,htmlspecialchars($str)。

2.设置 HTTP Header: “X-XSS-Protection: 1”

3.对所有的数据进行适当的编码。


CSRF攻击

CSRF攻击的全称是跨站请求伪造(cross site request forgery)。简单来说,CSRF 就是网站 A 对用户建立信任关系后,在网站 B 上利用这种信任关系,跨站点向网站 A 发起一些伪造的用户操作请求,以达到攻击的目的。

简单防御措施:

1.检查标准头部,确认请求是否同源。检查请求的referer是否相同。

2.增加token校验。主要有3种推荐的方式:

Synchronizer Tokens: 在表单里隐藏一个随机变化的 token,每当用户提交表单时,将这个 token 提交到后台进行验证,如果验证通过则可以继续执行操作。这种情况有效的主要原因是网站 B 拿不到网站 A 表单里的 token;

Double Cookie Defense:当向服务器发出请求时,生成一个随机值,将这个随机值既放在 cookie 中,也放在请求的参数中,服务器同时验证这两个值是否匹配;

Encrypted Token Pattern: 对 token 进行加密。

SQL注入攻击

所谓 SQL 注入,就是通过客户端的输入把 SQL 命令注入到一个应用的数据库中,从而得以执行恶意 SQL 语句。

简单防御:

1.过滤用户输入数据。
2.使用PDO查询数据。
3.对用户提供的所有的输入都进行编码。

DDoS攻击

DoS攻击就是通过大量恶意流量占用带宽和计算资源以达到瘫痪对方网络的目的。而 DDoS 攻击就是将多个计算机联合起来一同向目标发起攻击,从而成倍地提高拒绝服务攻击的威力。

DDoS 防御产品的核心是检测技术和清洗技术。检测技术就是检测网站是否正在遭受 DDoS 攻击,而清洗技术就是清洗掉异常流量。而检测技术的核心在于对业务深刻的理解,才能快速精确判断出是否真的发生了 DDoS攻击。清洗技术对检测来讲,不同的业务场景下要求的粒度不一样。

防御:

大厂里面一般都会自己出一套高防系统,请求cookie校验,检测异常流量,设置黑白名单。目前还没有一种有效的手段能够完全避免这种攻击。


文件上传漏洞

文件上传攻击是指攻击者利用站点没有对文件类型做安全校验的漏洞, 上传了可执行的文件或者脚本,并且通过脚本获得服务器上相应的权限,或者是通过诱导外 部用户访问或者下载上传的病毒或者木马文件,达到攻击目的。

简单防御:

对于上传的文件,进行类型,大小,以及重命名处理。

DNS Query Flood

DNS Query Flood攻击采用的方法是向被攻击的服务器发送海量的域名解析请求。 请求解析的域名是随机生成。被攻击的DNS服务器在接收到域名解析请求后,首先会在服务器上查找是否有对应的缓存, 由于大量不存在的域名解析请求,给DNS服务器带来了很大的负载,当解析请求超过一定量的时候,就会造成DNS服务器解析域名超时,这样攻击者便达成了攻击目的。