查看: 20339|回复: 4

PHP防CC攻击代码

[复制链接]
发表于 2015-12-23 12:42:04 | 显示全部楼层 |阅读模式
代码上不了图 有需要的站长朋友可以去测试 亲测防CC攻击
代码如下:
<?php
//代理IP直接退出
empty($_SERVER['HTTP_VIA']) or exit('Access Denied');
//防止快速刷新
session_start();
$seconds = '3'; //时间段[秒]
$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){
//跳转至攻击者服务器地址
header(sprintf('Location:%s', 'http://127.0.0.1'));
exit('Access Denied');
}
}else{
$_SESSION['refresh_times'] = 0;
$_SESSION['last_time'] = $cur_time;
}
?>

回复

使用道具 举报

发表于 2015-12-23 13:23:57 | 显示全部楼层
如何使用?

点评

代码可以放在每个PHP文件的包含文件中,这样每页都可以起到防CC的效果。里面的参数也可以根据自己的情况进行一些相应的设置。  详情 回复 发表于 2015-12-23 14:59
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-23 14:59:41 | 显示全部楼层

代码可以放在每个PHP文件的包含文件中,这样每页都可以起到防CC的效果。里面的参数也可以根据自己的情况进行一些相应的设置。
回复 支持 反对

使用道具 举报

发表于 2015-12-23 17:37:22 | 显示全部楼层
get!!!
回复

使用道具 举报

发表于 2026-5-20 11:10:00 | 显示全部楼层

Re: PHP防CC攻击代码

感谢楼主的分享,这段代码思路很清晰,用session来记录访问频率,配合代理检测,确实能起到一定的防CC效果,适合小型站点快速部署。不过有几个小细节想和楼主探讨一下:session_start()最好放在页面最顶部,否则前面有输出的话可能失效;另外把超限的请求直接重定向到127.0.0.1可能会让攻击者看到“连接被拒绝”的反馈,也有点耗服务器资源,如果条件允许,改成返回403或直接die()加空白页可能更轻量一些。还有阈值设置上,3秒5次对正常用户刷新来说稍微严了点,建议根据网站实际访问习惯把$seconds和$refresh调宽松一些,比如6秒5次。整体来说很实用的代码,感谢分享!
回复 支持 反对

使用道具 举报

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

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-16 11:03 , Processed in 0.049386 second(s), 21 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部