没有人会同情你,站起来努力吧!

防御CC攻击

服务器 初夏一梦 0评论

防御CC攻击

前段时间写了一个网站CC测压的小工具,今天就来做个防御这个CC攻击的PHP代码。在百度搜索许久后,找到两个还算不错的代码,一个拥有黑名单功能且智能防护,仅在受到攻击时启动防御,但是被攻击时使用的是验证码访问,而且界面还不太好看,另一个拥有好看的5秒盾但是却没有黑名单功能并且需要手动开启,于是就开始动手结合一下。

经过测试发现,网上流传的通用5秒盾CC代码有个小问题,在访问读秒时,如果直接刷新页面就会直接完成检测过程,所以动手改良了一下使其需要读秒完成后才算验证通过。在结合第一个黑名单的代码,最终完成了这个防御CC程序(其实就是百来行的代码)。

说明:

本程序是将网络上的搜集代码加以改良完成,并非完全原创。
本程序对CC攻击可起到一定的防御作用,并不能百分百抵挡,请悉知。
使用前请根据站点情况适当调整 防CC配置 的参数值。

功能:

1. 智能防御 —— 根据情况判断是否启用CC防御
2. 黑名单 —— 对短时间内访问频率超过预设值的IP封禁一段时间
3. 自定义 —— 可根据自身需求调整模板样式

使用要求:

Redis数据库 —— 服务器需安装Redis数据库,PHP需安装Redis拓展(用以支持IP黑名单封禁功能)

反馈:

作者邮箱:a2416632107@gmail.com
交流QQ群:541761294

安装

第一步(下载代码):

下载地址:http://pan.cxnidc.cn/s/qjwk9v1y

下载后我们将得到 cc.zip

将其解压得到 cc.php

第二步(修改参数):

使用Notepad++或其他代码编辑器打开编辑 cc.php

一般Redis配置默认即可,如果你的服务器更改了Redis数据库的设置请修改。

//防CC配置

$IPmax = 30; //最大进程数,请结合站点平均访问并发数修改

$IPfor = 60; //周期(s) 默认即可

$IPban = 60; //访问频率 预设短时间内每个IP访问的频率

$banTime = 300; //封禁时长(s) 超过预设值封禁时长

$UAfor = 60;//UA检测周期(s)  默认即可

$UAban = 200;//UA频率   周期时间内某UA访问的频率,大部分CC软件使用的是固定UA,伪造大量访问的同时UA也是固定的

$UAbanTime = 60;//封禁UA时长(s)   UA访问频率超过阀值封禁时长

防CC的配置需要修改的两个地方,一个是 $IPmax 的值,这个值应设置为当前站点的平均在线数量在加大一点,比如某个站点一天内平均会有166个用户同时访问,则这个值往上取一些就是200,这样当连接数大于200时就启用CC检测防护,低于这个值时就不启用。另一个需要修改的就是 $IPban 的值,这个可以理解为 短时间内某个IP访问站点的频率,如果设置为60,当用户短时间内请求你的站点超过60次就会被封禁(比如一直按着F5刷新),请根据站点的情况更改。当然如果你想封禁时间长一点或者短一点可以修改 $banTime 的值,单位为秒,默认访问超过频率预设值后封禁5分钟。在UA封禁期间,使用这个UA访问站点的IP都会被封,因此建议UA封禁时间不要太长以免影响正常用户的访问,也不要太短以免无法封禁攻击IP。

第三步(上传并启用):

将修改好的代码上传至站点目录,在头部或者主要文件中加入

<?php include 'cc.php'; ?>

WordPress则将cc.php上传至当前模板文件目录,然后在header.php文件里添加代码,以启用CC防御

<?php get_template_part( "cc" ); ?>

然后就可以进行测试啦,对着你的站点疯狂按F5吧或者找个CC程序试一下。

最后我在强调一下,这个代码针对一般攻击确实起到一定的防御作用,但并不能起到百分百的防御,所以即使装了防御也不要轻易出去装逼求**哦,面对百万级的CC也是无能为力。

截图展示

PC端截图

 

手机端截图

下载

没仔细看文章吧,文章里就有下载地址。

 

更新日志

v1.1:[2019/08/03]新增恶意UA过滤,UA检测功能,防止海量低频CC攻击。

如果你觉得这篇文章对你有帮助,请支持我继续更新网站和主题 !捐赠本站
喜欢 (1)or分享 (0)
头像
发表我的评论
取消评论
表情

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

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址