电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 531 人浏览分享

全面的asp防CC攻击代码分享

 关闭 [复制链接]
531 0
  1. 代码如下:

  2. <%
  3. Dim CC_Info(4),strInfo,strTemp
  4. If Session("CC_Info") = "" Then
  5. CC_Info(0) = "cclog.txt" '日志文件名
  6. CC_Info(1) = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
  7. CC_Info(2) = Request.ServerVariables("REMOTE_ADDR")
  8. CC_Info(3) = 10 'N秒内禁止刷新当前页面
  9. CC_Info(4) = "badip.txt" 'IP黑名单文件名
  10. Session("CC_Info") = CC_Info(0) &"|"& CC_Info(1) &"|"& CC_Info(2) &"|"& CC_Info(3) &"|"& CC_Info(4)
  11. Else
  12. strInfo = Split(Session("CC_Info"),"|")
  13. CC_Info(0) = strInfo(0)
  14. CC_Info(1) = strInfo(1)
  15. CC_Info(2) = strInfo(2)
  16. CC_Info(3) = strInfo(3)
  17. CC_Info(4) = strInfo(4)
  18. End If

  19. Const chkRefresh = 1 '0关闭防刷新
  20. Const chkProxy = 1 '0关闭代理验证
  21. Const chkBadIP = 1 '0关闭IP黑名单

  22. If Session("BadIP") = "" Then
  23. strInfo = ReadFile(CC_Info(4))
  24. If strInfo = "" Then strInfo = "chinavb.net"
  25. Session("BadIP") = strInfo
  26. Else
  27. strInfo = Session("BadIP")
  28. End If

  29. '/*第一层判断,N秒内禁止刷新*/
  30. If chkRefresh = 1 Then
  31. If Session("RefreshTime")="" Then
  32. Session("RefreshTime")=Now()
  33. Else
  34. If DateDiff("s", Session("RefreshTime"), Now()) < CInt(CC_Info(3)) Then
  35. Response.Write("系统繁忙,请稍候再试!错误代码001")
  36. Response.End()
  37. Else
  38. Session("RefreshTime")=Now()
  39. End If
  40. End If
  41. End If

  42. '/*第二层判断,代理禁止查看*/
  43. If chkProxy = 1 Then
  44. If CC_Info(1) <> "" Then
  45. If InStr(strInfo,CC_Info(1)) = 0 Then
  46. strTemp = CC_Info(1) & vbCrLf
  47. If InStr(strInfo,CC_Info(2)) = 0 Then
  48. strTemp = strTemp & "[" & CC_Info(2) & "]" & vbCrLf
  49. End If
  50. SaveLog CC_Info(4),strTemp
  51. strInfo = strInfo & strTemp
  52. Session("BadIP") = strInfo
  53. End If
  54. '记录CC攻击日志
  55. SaveLog CC_Info(0),CC_Info(1) & "["& CC_Info(2) & "]" & Now() &vbCrLf
  56. Response.Write("系统繁忙,请稍候再试!错误代码002")
  57. Response.End()
  58. End If
  59. End If

  60. '/*第三层判断,IP黑名单禁止查看*/
  61. If chkBadIP = 1 Then
  62. If InStr(strInfo,CC_Info(2))>0 Then
  63. Response.Write("系统繁忙,请稍候再试!错误代码003")
  64. Response.End()
  65. End If
  66. End If

  67. 'ForReading=1,ForWriting=2,ForAppending=8
  68. Function SaveLog(filename, filecontent)
  69. On Error Resume Next
  70. Dim fso, thisfile
  71. filename = Server.MapPath(filename)
  72. Set fso = CreateObject("Scripting.FileSystemObject")
  73. If Err <> 0 Then
  74. Response.Write("写入文件"&filename&"失败,可能您的系统不支持FSO!")
  75. Response.End()
  76. End If
  77. Set thisfile = fso.OpenTextFile(filename, 8, True)
  78. thisfile.write (filecontent)
  79. thisfile.Close
  80. Set fso = Nothing
  81. End Function

  82. Function ReadFile(filename)
  83. On Error Resume Next
  84. Dim fso, thisfile
  85. Set fso = CreateObject("Scripting.FileSystemObject")
  86. If Err <> 0 Then
  87. Response.Write("读取文件"&filename&"失败,可能您的系统不支持FSO!")
  88. Response.End()
  89. End If
  90. Set thisfile = fso.OpenTextFile(Server.MapPath(filename), 1, True)
  91. ReadFile = thisfile.ReadAll
  92. thisfile.Close
  93. Set thisfile = Nothing
  94. Set fso = Nothing
  95. End Function
  96. %>
复制代码

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

本版积分规则

1

关注

23

粉丝

2901

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.