2019独角兽企业重金招聘Python工程师标准>>>
syn洪水:该攻击利用了tcp协议的漏洞,tcp是一种端到端连接的网络协议,建立连接需要三次握手,在一般的tcp协议栈实现中,收到握手请求的tcp服务器将创建tcp半连接并保存到链表中,syn洪水利用这一特点,发送大量syn连接请求,从而造成服务器内存充斥大量的半连接,使服务器无法再处理正常的tcp连接请求。解决这一问题可以采用缩短半连接的生存时间,或者扩大服务器带宽等手段。
cc:该攻击利用iframe标签,在正常网页中嵌入不可见的iframe,而将要攻击的网站地址嵌入到iframe中,这样当用户访问这些被挂马的站点,被攻击的网站也将同时被访问,通过重复嵌入多个iframe,被攻击网站将以相同倍的次数被访问,从而导致网站因大量访问而瘫痪。解决办法可以利用http的refrer头,将不合法的refrer屏蔽。
hash冲突:该攻击利用一些编程语言的hash算法缺陷,故意伪造大量相同hash键数据填充到POST请求参数中,从而使http服务器保存客户端参数的hash表退化成链表,以此消耗服务器的CPU资源。解决办法可以修改服务器的hash算法,或者限制客户端参数个数。
附 一个产生同样hashcode的java代码片段:
public static void main(String[] args) {
String s="SDSEWR@$@$%#@%#%@";
s.hashCode();
char[] c=s.toCharArray();
char c1=c[c.length-1];
char c2=c[c.length-2];
c1+=31;
c2-=1;
c[c.length-1]=c1;
c[c.length-2]=c2;
String ss=new String(c);
System.out.println(s.hashCode());
System.out.println(ss.hashCode());
System.out.println(s);
System.out.println(ss);
}