Asp 防御CC攻击模块 (Anti-CC.asp)

  • A+
所属分类:lcx

2012-1-4 9:26:51 补充:还能防采集,哈哈哈哈哈,再说一个猥琐的用法,如果你给自定义的404错误页面中,加入了该保护模块,哈哈哈,强大的效果就来了,可以防止扫目录,如果有扫路径的,瞬间被封IP!!!囧,原理你懂得……

该模块对所有Asp脚本通用,独立运行的,只需要在想保护的页面加上:,即可。

脚本规则如下:

1、连续10次访问频率低于1秒的,判定为攻击,封禁IP,这个时间和次数可以自定义,规则放的比较宽,误判几率极低。

2、封禁时间按照攻击频率计算,攻击频率越高,封的越久,如果你在封禁时间段内仍旧访问,那么封禁时间会累积增加,你要是被封了10分钟以上,建议你还是换IP吧,囧……

3、移除掉15分钟内没有访问的用户(时间可自定义)。

由于是高速内存全局变量,不读写文件,不读写数据库,高效查询,所以不必担心会消耗很多资源,实际上只消耗极少的极少的资源,还没你正常访问消耗得多,可忽略不计。

给个查询接口,显示当前所有在线用户:https://lcx.cc/?cc=showuser,如果阈值大于10,那表示是被封的用户,囧……

详细介绍见这里:https://lcx.cc/post/2092/

= CC_Max Then                                              '是否被封
        If DateDiff("S", User(3), Now) >= Int(User(1)) Then                     '判断是否需要解封
            User(1) = "0"
            User(3) = Now
            SaveToApp User                                                      '保存数据
        Else
            User(1) = Int(User(1)) + 1                                          '累加被封时间
            SaveToApp User                                                      '保存数据
            BanIPMsg (User(1) - DateDiff("S", User(3), Now))                    '计算解封剩余时间并显示被封信息
        End If
    Else
        If DateDiff("S", User(3), Now) = TimeOut Then                          '超时则销毁变量 ' And Int(User(0)) 0 Then
        GetForwarded = Replace(Tmp, vbCrLf, "")
    Else
        GetForwarded = Request.ServerVariables("REMOTE_ADDR")
    End If
End Function

Function GetFullUrl()
    '获取完整URL地址
    If Request.QueryString  "" Then
        GetFullUrl = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME") & "?" & Request.QueryString
    Else
        GetFullUrl = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME")
    End If
    GetFullUrl = Replace(GetFullUrl, vbCrLf, "")
End Function

Function SaveToApp(Data)
    '保存数据到内存
    Application(IP0) = IP1 & vbCrLf & Data(1) & vbCrLf & Data(2) & vbCrLf & User(3) & vbCrLf & BrowX & vbCrLf & GetFullUrl()
End Function

Function BanIPMsg(LeftTime)
    'IP 被封时显示的信息
    Response.Clear
%>

警告:

你的访问频率太快,请不要快速刷新页面或者尝试 CC 攻击!

你的 IP 地址将于 秒后解封,在此期间你不能访问本站任何页面,届时本页面会自动刷新!

" & vbCrLf & _ "" & vbCrLf & _ "" & vbCrLf & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & vbCrLf Dim TrColor For Each Anti_CC In Application.Contents '遍历清理超时的用户 User = Split(Application(Anti_CC), vbCrLf) '提取用户数据,并分割为数组 If UBound(User) = 5 Then '判断数据格式是否正确 If TrColor = "#5CADAD" Then '表格自动换色 TrColor = "#95CACA" Else TrColor = "#5CADAD" End If IF Anti_CC User(0) Or Int(User(1)) >= CC_Max Then '高亮显示使用代理、已被屏蔽的用户 TrColor = "#FF9797" End IF Response.Write "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & vbCrLf Else '错误的数据 Response.Write "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & _ "" & vbCrLf End If Next Response.Write "
代理 IP真实 IP阈值首次访问最后访问用户信息访问网址
" & Anti_CC & "" & Server.HtmlEncode(User(0)) & "" & User(1) & "" & User(2) & "" & User(3) & "" & Server.HtmlEncode(User(4)) & "" & Server.HtmlEncode(User(5)) & "
" & Anti_CC & "NullNullNullNullNullError: " & Application(Anti_CC) & "
" & vbCrLf & _ "" Response.End End Function %>

留言评论(旧系统):

奥巴牛 @ 2011-12-29 23:46:13

好东西,收藏之,感谢。

本站回复:

(^o^)/

【匿名者】 @ 2012-04-07 02:36:41

添加到页面中没效果呢 怎么刷新也没事 但是直接刷新Anti-CC.asp这个文件就有效果
就是用的

本站回复:

这个页面是通用的,你的页面不知道什么问题,具体要看情况才知道。

血色 @ 2013-05-20 15:27:25

cc攻击直接访问的图片地址,这个怎么搞?

本站回复:

拦截iis数据包,分析,或者有各种iis防火墙,都有防cc功能。

佚名 @ 2013-05-21 10:36:02

之前php写过一个版本,防cc,防刷图片,定义的404和403页面,回头借鉴下其中一些方法,呵呵

本站回复:

you are welcome! good good study, day day up!

佚名 @ 2013-05-25 23:08:28

大爱,正好需要这个,不知道还会不会继续更新。。。

本站回复:

作为一个轻量级防御cc、恶意刷新的脚本,貌似没有需要更新的功能了……

Chestnut @ 2013-12-18 11:27:50

感谢站长分享,准备实现jsp版. :)

本站回复:

You Are Welcome!

[email protected] @ 2014-02-28 18:08:25

程序报错啊
情况如下
Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/CC.ASP,行 18

If IsEmpty(Application(IP0)) Then '---------------------------------------------------------------------------------^

本站回复:

代码完整无报错,请检查你的执行环境。

Linker @ 2014-03-01 17:03:31

Mark

本站回复:

Mark

佚名 @ 2014-05-19 05:35:36

HTTP 错误 500 - 服务器内部错误。 不知道是权限问题还是什么问题,IIS 有启用父路径 ,给所有权限还是一样提示500错误!

本站回复:

工具 --> Internet 选项 --> 高级 --> 去掉:显示友好 http 错误信息 --> 确定,然后在服务器设置详细错误输出,然后看具体报错信息,就知道错在哪了。

七行者 @ 2014-05-19 09:40:12

今天我的小博客就不知道被哪位D哥CC了 到现在都打不开了,不知道这样D我的小博客有啥意义。哎。。。。

本站回复:

上个免费CDN吧,你这还好,我这站天天被攻击,各种攻击,树大招风啊……

[email protected] @ 2014-06-22 17:05:18

我要找的就是这个程序,但是他会报错
Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/include/Anti-CC.asp,行 18

If IsEmpty(Application(IP0)) Then '鐢ㄦ埛绗竴娆¤闂
---------------------------------------------------------------------------------^

本站回复:

检查你文件编码是否正确。

RainShine @ 2014-10-22 18:47:08

Anti_CC这补充说明...不愧是核总...怎么形容呢?┬─┬ ノ( ゜-゜ノ)

本站回复:

你想说神马?

佚名 @ 2015-01-11 21:41:07

Microsoft VBScript 运行时错误 错误 '800a000d'

类型不匹配

/anti-cc.asp,行 53 iis7.5环境下报错

本站回复:

可能是方法不支持高版本iis,在iis7.5中开启IIS6.0兼容模块即可。

wyp175 @ 2015-04-05 00:10:27

相信我这不是挖坟,我只是想表示能否来个PHP版本的,wordpress小站真心伤不起,天天被D

本站回复:

PHP版本的木有~

潇 @ 2015-07-30 12:15:13

用户信息一栏不显示 怎么破?

本站回复:

检查下:
BrowX = Replace(Request.ServerVariables("HTTP_USER_AGENT"), vbCrLf, "") '客户端浏览器信息

文章来源于lcx.cc:Asp 防御CC攻击模块 (Anti-CC.asp)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: