当前位置:七道奇文章资讯网站建设网站编程
日期:2011-12-30 08:35:00  来源:本站整理

Asp 防备CC攻击模块 (Anti-CC.asp)[网站编程]

赞助商链接



  本文“Asp 防备CC攻击模块 (Anti-CC.asp)[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

该模块对全部Asp脚本通用,独立运行的,只需求在想保护的页面加上:<!--#include file="Inc/Anti-CC.asp"-->,便可.

脚本法则以下:

1、持续10次拜候频率低于1秒的,断定为攻击,封禁IP,这个时间和次数可以自定义,法则放的对比宽,误判概率极低.

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

3、移撤除15分钟内没有拜候的用户(时间可自定义).

由于是高速内存全局变量,不读写文件,不读写数据库,高效查询,所以没必要耽忧会损耗很多资源,实际上只损耗极少的极少的资源,还没你正常拜候损耗得多,可忽视不计.

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

具体介绍见这里:http://lcx.cc/?FoxNews=2092.html

  1. <
  2. On Error Resume Next 
  3. 'Asp 防备CC攻击模块 (Anti-CC), By:Nuclear'Atk, At:2011-12-24 11:55:44. 
  4. Dim IP0, TimeOut, Interval, Anti_CC, BrowX 
  5.  
  6. TimeOut = 900 '超不时间(秒) 
  7. Interval = 1 '最短革新隔断(秒) 
  8. CC_Max = 10 '临界值(次) 
  9. IP0 = Request.ServerVariables("REMOTE_ADDR") '客户端IP 
  10. BrowX = Replace(Request.ServerVariables("HTTP_USER_AGENT"), vbCrLf, "") '客户端浏览器 
  11.  
  12. Application.Lock 
  13. If IsEmpty(Application(IP0)) Then '用户第一次拜候 
  14. Application(IP0) = "0" & vbCrLf & _ 
  15. Now & vbCrLf & _ 
  16. Now & vbCrLf & _ 
  17. BrowX & vbCrLf & _ 
  18. GetFullUrl() 
  19. Else 
  20. CC = Split(Application(IP0), vbCrLf) '提取数据分割为数组 
  21. If Int(CC(0)) => CC_Max Then '能否被封 
  22. If DateDiff("S", CC(2), Now) >= Int(CC(0)) Then '判断能否需求解封 
  23. CC(0) = "0" 
  24. CC(2) = Now 
  25. SaveToApp() '保存数据 
  26. Else 
  27. CC(0) = Int(CC(0)) + 1 '累加被封时间 
  28. SaveToApp() '保存数据 
  29. If Request("cc") <> "showuser" Then BanIPMsg 
  30. End If 
  31. Else 
  32. If DateDiff("S", CC(2), Now) <= Interval Then '判断拜候隔断 
  33. CC(0) = Int(CC(0)) + 1 '临界值+1 
  34. Else 
  35. If Int(CC(0)) < 1 Then '处理负数 
  36. CC(0) = 0 
  37. Else 
  38. CC(0) = Int(CC(0)) - 1 '临界值-1 
  39. End If 
  40. End If 
  41. CC(2) = Now '革新最后拜候时间 
  42. SaveToApp() '保存数据 
  43. End If 
  44. End If 
  45. If Request("cc") = "showuser" Then 
  46. Response.Clear 
  47. Response.Write "<table width='100%' BORDER='1' style='font-size:12px' width='100%'><tr><TD width='100'>IP</TD><TD width='40' align='center'>阈值</TD><TD width='140' align='center'>初次拜候</TD><TD width='140' align='center'>最后拜候</TD><TD>用户信息</TD><TD>拜候网址</TD></tr>" & vbCrLf 
  48. End If 
  49. For Each Anti_CC In Application.Contents 
  50. CC = Split(Application(Anti_CC), vbCrLf) '分割为数组 
  51. If DateDiff("S", CC(2), Now)=>TimeOut Then '超时则销毁变量 
  52. Application.Contents.Remove (Anti_CC) 
  53. End If 
  54. If Request("cc") = "showuser" Then Response.Write "<tr><TD>" & Anti_CC & "</TD><TD align='center'>" & CC(0) & "</TD><TD align='center'>" & CC(1) & "</TD><TD align='center'>" & CC(2) & "</TD><TD>" & Server.HtmlEncode(CC(3)) & " </TD><TD>" & Server.HtmlEncode(CC(4)) & "</TD></tr>" & vbCrLf 
  55. Next 
  56. Application.Unlock 
  57. If Request("cc") = "showuser" Then 
  58. Response.Write "</table><meta http-equiv='refresh' content='20'>" & vbCrLf 
  59. Response.End 
  60. End If 
  61.  
  62. Function SaveToApp() '保存数据到内存 
  63. Application(IP0) = CC(0) & vbCrLf & CC(1) & vbCrLf & CC(2) & vbCrLf & BrowX & vbCrLf & GetFullUrl() 
  64. End Function 
  65.  
  66. Function GetFullUrl() '获得完好URL地址 
  67. If Request.QueryString <> "" Then 
  68. GetFullUrl = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME") & "?" & Request.QueryString 
  69. Else 
  70. GetFullUrl = "http://" & Request.ServerVariables("HTTP_HOST") & Request.ServerVariables("SCRIPT_NAME") 
  71. End If 
  72. GetFullUrl = Replace(GetFullUrl, vbCrLf, "") 
  73. End Function 
  74.  
  75. Function BanIPMsg() 'IP 被封时显示的信息 
  76. Response.Clear 
  77. Dim LeftTime 
  78. LeftTime = CC(0) - DateDiff("S", CC(2), Now) '计算剩余时间 
  79. %> 
  80. 你的拜候频率太快,请不要快速革新页面大概尝试CC攻击!<br><br> 
  81. 你的IP地址将于 <font color='#FF0000' id="tick"><%=LeftTime%></font> 秒后解封,在此期间你不能拜候本站任何页面,届时本页面会自动革新! 
  82. <script type="text/javascript"> 
  83. var i = <%=LeftTime%>
  84. var intervalid; 
  85. intervalid = setInterval("fun()", 1000); 
  86. function fun() { 
  87. if (i == 0) { 
  88. clearInterval(intervalid); 
  89. location.reload() 
  90. document.getElementById("tick").innerHTML = i; 
  91. i-- 
  92. </script> 
  93. <script>alert('你的拜候频率太快,请不要快速革新页面大概尝试CC攻击!')</script> 
  94. <
  95. Response.End 
  96. End Function 
  97. %> 

摘自http://lcx.cc/?FoxNews=2094.html


  以上是“Asp 防备CC攻击模块 (Anti-CC.asp)[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • ASP利用正则表达式提取内容
  • nginx 反向代理iis支持 ASP脚本设置
  • <b>ASP.NET安全设置防备ASPXSpy</b>
  • Ubuntu Server+Apache 运行 asp.net
  • 怎样ASP.NET MVC调用Delphi开辟的Web报表
  • 学习ASP.NET需求举行的步骤办法
  • ASP.NET脚本过滤-避免跨站脚本攻击
  • Asp WinHttp.WinHttpRequest.5.1 对象利用详解
  • ASP防XSS注入函数
  • Asp 防备CC攻击模块 (Anti-CC.asp)
  • metasploit metasploit 中文系统安装失利问题
  • Ubuntu 11下安装Metasploit Pro 4.0.0
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .