标签归档:TCP连接攻击

高效防攻击

因一个朋友的网站终日遭一心理变态人士的攻击,四层攻击: SYN洪水攻击 TCP连接攻击;七层攻击: HTTP Flood(CC攻击)。虽然配置了个8核的服务器,但依然被击垮。为了减轻攻击带来的危害,特写了以下代码进行抵御(基于discuz x3 框架)。经实践,起到了作用,虽说不能完全杜绝,但至少让对方攻击的成本大大提高。


//获取客户端IP
$fip = $_G['clientip'];

//取被列入黑名单的IP地址
$blackipstr = memory('get', 'blackips');

//判断是否被列入黑名单了,若是则中止访问
if($blackipstr){
	
	if(strexists($blackipstr, $fip)){	
		exit();
	}
}

//未被列入黑名单的话则对其访问进行控制.TIMESTAMP.
$usertag = $fip."@".cutstr(TIMESTAMP,9,'');

if(memory('get', $usertag)){
	
	$ppp = memory('get', $usertag);
	if($ppp>50){
		//允许的蜘蛛IP
		$zhizhu = array("220.181","123.125","66.249","157.55","157.56","65.55","131.253");
		$efiparr = explode(".",$fip);
		$efip = $efiparr[0].".".$efiparr[1];
		
		//加入黑名单
		if(!in_array($efip,$zhizhu)){
			
			memory('set', 'blackips',$blackipstr."|".$fip,18000);
			exit();
		}

		
	}else{
		
		memory('set', $usertag,$ppp+1,20);
		
	}
	
	
}else{
	
	memory('set', $usertag,1,20);
	
}