网站被人恶意CC攻击 如何解决这个问题

换了好几次IDC服务商都不行 有什么办法呢?软防能抵挡吗?硬防?程序上无法实现吧?

硬防--美国飞塔Fortinet应用安全防御网关
—-网络安全设备供货商和全球UTM解决方案领导者
拒绝服务攻击是目前最常用的攻击手段,很容易使服务器瘫痪,FortiWeb通过特有的SynCookie技术高校的对Syn flood进行防御,它还有参数验证,签名库匹配,起始页面强制、URL黑/白、防暴力破解、Robot程序控制、XML安全监测等安全功能、可全面防御各种威胁,为WEB服务提供全面的安全保护。
软防--难度比较大,要慎重
防范方法
说了攻击原理,大家肯定会问,那么怎么防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御。 1. 使用Cookie认证.这时候朋友说CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就可以了。 2. 利用Session.这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号.给些示范代码吧,Session: 程序代码: 〈% if session(“refresh”)〈〉 1 then Session(“refresh”)=session(“refresh”)+1 Response.redirect “index.asp” End if %〉 这样用户第一次访问会使得Refresh=1,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么影响。 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线攻击,服务器马上满负荷了。 代码层的防御需要从点点滴滴做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响,慎之!

参考资料:百度百科CC攻击,美国飞塔Forinet防火墙

温馨提示:答案为网友推荐,仅供参考