愿时光没有磨平我的麟角

也算可以专心做事了,可不能给自己丢脸啊。Be stronger.

昨天看了拒绝服务攻击ddos。ddos攻击的本质是对有限资源的无限滥用,利用合理的请求造成资源过载,导致服务器崩溃服务不可用。常见的ddos攻击有syn flood,udp flood,icmp flood等。syn最常见,这是因为它利用了tcp三次握手设计的缺陷。
应用层ddos是发生在三次握手已经完成环境下,发起攻击的ip都是真实的。应用层ddos攻击与防御方法如下:
1.限制请求频率。通过ip地址和cookie定位一个客户端,若该客户端在一定时间内请求过于频繁则对之后的请求冲顶想到一个出错页面。可以通过大量代理服务器不断更换ip攻击服务器。雅虎提供过一个算法判断客户端的请求频率。
2.验证码。提前将验证码图片生成好,以哈希过的字符串作为验证码图片的文件名,并且文件名需要随机化防止通过彩虹表建立验证码与明文的对应关系。
3.修改配置参数以缓解ddos攻击。如调小timeout,增加maxclient等。
4.让客户端解析js文件或flash文件以判断客户端是不是浏览器。
利用服务器的漏洞或设计缺陷直接造成ddos。
1.slowlories攻击。恶意占用有限的链接不释放(有限资源的无限滥用),在http头中只有一个换行符\r\n(正常有俩),服务器就会等待第二个换行符。这时只要再发送任意http头就可以保持链接。今天依然有效。
2.http post dos。发送post包时,指定一个很大的content-length值并以很低的速度发送,保持链接不断开。在连接数多了以后就会造成ddos。
3.server limit dos。http包头超出限制。比如通过xss写入一个超长的cookie,在刷新页面时会发送包涵这个cookie的http头,服务器会因为超长拒绝请求,从而导致ddos。
还有就是正则表达式会引发ddos。如:

1
^(a+)+$

在输入4个a时会遍历16次,但输入输入16个a时会遍历65536次。当用户恶意构造输入时,会大量消耗cpu和内存资源。

我会变得更好,更优秀。一定的。