PHP 简易防CC代码,采用301跳转方式,降低CC攻击的效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
empty($\_SERVER\['HTTP\_VIA'\]) or exit('Access Denied');
$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=mb\_convert\_encoding("<title>安全检查</title><h3>检测到CC攻击,正在进行浏览器安全检查!</h3>","UTF-8","GBK");
exit($msg."<meta http-equiv='refresh' content='5;url={$url}'>");//5是定时跳转的时间,后期可以根据时间段调整跳转时间
}
}else{
$\_SESSION\['refresh\_times'\] = 0;
$\_SESSION\['last\_time'\] = $cur\_time;
}
?>