很多站长在做站的时候会碰到被人cc攻击,有时候真是苦不堪言呐!

其实本人结合多年的做站经验对于攻防还是有一定的见解的,对于防御我想说的是:只要服务器真实ip不暴露,服务器域名直接访问做禁止处理,域名加上cdn可以很大程度上起到防御作用,国内已备案的域名可以使用百度云加速,免费又好用。不过有点鸡肋的是移动的线路总是会出问题。

好了,废话不多说。其实使用php代码也可以进行一定的cc防御的。以下就是用于防御cc攻击的php代码。

<?php

empty($_SERVER['HTTP_VIA']) or exit('Access Denied');

session_start();

$seconds = 10; //时间段[秒]
$refresh = 5; //刷新次数

//设置监控变量
$cur_time = time();
if(isset($_SESSION['last_time'])){
	$_SESSION['refresh_times'] += 1;
}else{
	$_SESSION['refresh_times'] = 1;
	$_SESSION['last_time'] = $cur_time;
}

//处理监控结果
if($cur_time - $_SESSION['last_time'] < $seconds){
	if($_SESSION['refresh_times'] >= $refresh){
		//跳转验证
		$url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
		$msg = '<title>安全检查</title><h3>检测到CC攻击,正在进行浏览器安全检查!</h3>';
		exit($msg . "<meta http-equiv='refresh' content='3;url={$url}'>"); //3是定时跳转的时间,后期可以根据时间段调整跳转时间
	}
}else{
	$_SESSION['refresh_times'] = 0;
	$_SESSION['last_time'] = $cur_time;
}

以上代码插入index.php文件里面即可,实测有效。