3. 通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP,这招完全可以找到发动攻击的人,当然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数.详细代码:

  程序代码:

  〈%

  Dim fsoObject

  Dim tsObject

  dim file

  if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then

  response.write "无代理访问"

  response.end

  end if

  Set fsoObject = Server.CreateObject("Scripting.FileSystemObject")

  file = server.mappath("CCLog.txt")

  if not fsoObject.fileexists(file) then

  fsoObject.createtextfile file,true,false

  end if

  set tsObject = fsoObject.OpenTextFile(file,8)

  tsObject.Writeline Request.ServerVariables("HTTP_X_FORWARDED_FOR")&"["&Request.ServerVariables("REMOTE_ADDR")&"]"&now()

  Set fsoObject = Nothing

  Set tsObject = Nothing

  response.write "有代理访问"

  %〉

  这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,知道是谁在攻击了.将这个代码做成Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求连接到这个文件上,然后马上能发现攻击的人.

  4. 还有一个方法是把需要对数据查询的语句做在Redirect后面,让对方必须先访问一个判断页面,然后Redirect过去.

  5. 在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法.

  CC的防御要从代码做起,其实一个好的页面代码都应该注意这些东西,还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口,大家都应该在代码中注意.举个例子吧,某服务器,开动了5000线的CC攻击,没有一点反应,因为它所有的访问数据库请求都必须一个随机参数在Session里面,全是静态页面,没有效果.突然发现它有一个请求会和外面的服务器联系获得,需要较长的时间,而且没有什么认证,开800线攻击,服务器马上满负荷了.

  代码层的防御需要从点点滴滴做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响,慎之!