• 原森林之家(foresthouse.cn)改为走私范(zousifan.com),只是改个名内容不变。
  • 网站图片自建立开始到19年全部丢失,血的教训时刻备份,多点备份!

做了个防CC攻击的PHP文件免费下载

开发建站 6年前 (2019-05-13) 1114次浏览 0个评论 扫描二维码
本文最后更新于2019年5月13日,已超过 1 年没有更新,如果文章内容失效,请 反馈 给我们,谢谢!


这个PHP文件主要是用来防止网站被恶意CC攻击的,它可以设置在多少秒内刷新多少次数后自动触发,比如设置60秒内25次,在60秒内刷新次数达到25次后就会触发并且刷新越快等待时间越长,这个根据自身硬件情况自行设置代码中的各种语句都已经标明了注释方便自行修改。一般只需要修改第10到12行,时间段、刷新次数和日志开关。

可把引用到全站PHP文件的头部,比如数据库连接文件等即可。

CC日志效果如下图

PHP代码如下(请勿直接复制以防出错请在页面底部下载源码):

<?php
/*
来源:森林之家(www.foresthouse.cn)
*/
//代理IP直接退出
empty($_SERVER['HTTP_VIA']) or exit('Access Denied');

//防止快速刷新(在下面的时间段内达到刷新次数后触发)
session_start();
$seconds = '60'; //时间段[秒]
$refresh = '25'; //刷新次数
$on_off = "on";//日志开关(如果不需要日志请把on随便改个东东)

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

//保存CC日志函数
function logcc($logcc)
{
	$logpath=$_SERVER["DOCUMENT_ROOT"]."/cc.txt";//保存CC日志到网站根目录
	$log_f=fopen($logpath,"a+");
	fputs($log_f,$logcc."\r\n");	
}

//处理监控结果
if($cur_time - $_SESSION['last_time'] < $seconds){//判断刷新时间是否小于设定的时间(时间段[秒])
 if($_SESSION['refresh_times'] >= $refresh){//判断刷新次数是否大于设定的刷新次数
	$wait = $seconds - ($cur_time - $_SESSION['last_time']);//等待时间/跳转时间
	
	if ($_SESSION['refresh_times'] == $refresh && $on_off=="on"){//时间段内等于刷新次数才记录(避免每次刷新都会记录)
	logcc("<br>IP: ".$_SERVER["REMOTE_ADDR"]."<br>时间: ".strftime("%Y-%m-%d %H:%M:%S")."<br>页面:".$_SERVER["PHP_SELF"]."");	
	}	
  
   $url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//攻击者跳转地址(依然为当前网址)
   
   //前台
   echo <<<EOT
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>西顾5秒盾</title>
	<h3><center><font color="#FF0000">检测到cc攻击请原地等待<span id="time">00</span>秒</font></center></h3>
	<meta http-equiv="refresh" content=$wait; url="$url"/>
    
	<script src="https://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
	<script type = "text/javascript">
var i = $wait-1;
var t = setInterval(function() {
    if (i == 0) {
        clearInterval(t);
        return;
    }
    document.getElementById("time").innerHTML = i;
    i--;
},
1000) 
	</script>
	</head>
</html>
EOT;

  exit();
 }
}else{
	//重置
	$_SESSION['refresh_times'] = 0;
	$_SESSION['last_time'] = $cur_time;
}
?>

专业防CC攻击的PHP文件源码免费下载


版权所有丨如未注明 , 均为原创丨本网站采用 BY-NC-SA 协议进行授权 , 转载请注明 出处!
喜欢 (3)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
    仅用来给您发送回复提醒。不会公开!
  • 网址