Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[教程] PHP防CC攻击简单验证的代码

[复制链接]
gov365 发表于 2012-3-5 17:12:37 | 显示全部楼层 |阅读模式
尤其是虚拟主机的用户,如果CPU超载将会出现“service unariable”的提示。
关于超载的因素有很多,比如网页结构不合理,流量过大等。其中还有一个可能会出现的恶意因素,就是CC攻击。
所谓的CC攻击就是对方利用程序或一些代理对您的网站进行不间断的访问,造成您的网站处理不了而处于当机状态。
这种时候您的统计系统(可能是量子、百度等)当然也是统计不到的。
不过我们可以借助于一些防攻击的软件来实现,不过效果有时并不明显。
下面我提供一段PHP的代码,可以起到一定的防CC效果。


主要功能:在3秒内连续刷新页面5次以上将跳转到http://*.3344.eu
代码如下:

$P_S_T = $t_array[0] + $t_array[1];
$timestamp = time();

session_start();
$ll_nowtime = $timestamp ;
if (session_is_registered('ll_lasttime')){
$ll_lasttime = $_SESSION['ll_lasttime'];
$ll_times = $_SESSION['ll_times'] + 1;
$_SESSION['ll_times'] = $ll_times;
}else{
$ll_lasttime = $ll_nowtime;
$ll_times = 1;
$_SESSION['ll_times'] = $ll_times;
$_SESSION['ll_lasttime'] = $ll_lasttime;
}
if (($ll_nowtime - $ll_lasttime)<3){
if ($ll_times>=5){
header(sprintf("Location: %s",‘http://*.3344.eu’));
exit;
}
}else{
$ll_times = 0;
$_SESSION['ll_lasttime'] = $ll_nowtime;
$_SESSION['ll_times'] = $ll_times;
}

3表示时间间隔,5表示刷新次数
以上代码可以放在每个PHP文件的包含文件中,这样每页均可起到防CC的效果。里面的参数也可以根据您自己的情况进行一些相应的设置。
9420 发表于 2012-3-23 14:51:44 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

9420 发表于 2012-3-25 00:37:29 | 显示全部楼层
百度能正常收录不???
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-26 12:54 , Processed in 0.024426 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表