凡科做网站友情链接怎么做,开发软件能赚多少钱,wordpress 添加二级菜单,做php网站时如何建立数据库CC主要是用来攻击页面的.大家都有这样的经历#xff0c;就是在访问论坛时#xff0c;如果这个论坛比较大#xff0c;访问的人比较多#xff0c;打开页面的速度会比较慢#xff0c;对不?!一般来说#xff0c;访问的人越多#xff0c;论坛的页面越多#xff0c;数据库就… CC主要是用来攻击页面的.大家都有这样的经历就是在访问论坛时如果这个论坛比较大访问的人比较多打开页面的速度会比较慢对不?!一般来说访问的人越多论坛的页面越多数据库就越大被访问的频率也越高占用的系统资源也就相当可观现在知道为什么很多空间服务商都说大家不要上传论坛聊天室等东西了吧。 一个静态页面不需要服务器多少资源甚至可以说直接从内存中读出来发给你就可以了但是论坛就不一样了我看一个帖子系统需要到数据库中判断我是否有读读帖子的权限如果有就读出帖子里面的内容显示出来--这里至少访问了2次数据库如果数据库的体积有200MB大小系统很可能就要在这200MB大小的数据空间搜索一遍这需要多少的CPU资源和时间?如果我是查找一个关键字那么时间更加可观因为前面的搜索可以限定在一个很小的范围内比如用户权限只查用户表帖子内容只查帖子表而且查到就可以马上停止查询而搜索肯定会对所有的数据进行一次判断消耗的时间是相当的大。 CC就是充分利用了这个特点模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作就是需要大量CPU时间的页面)。很多朋友问到为什么要使用代理呢因为代理可以有效地隐藏自己的身份也可以绕开所有的防火墙因为基本上所有的防火墙都会检测并发的TCP/IP连接数目超过一定数目一定频率就会被认为是Connection-Flood。 使用代理攻击还能很好的保持连接我们这里发送了数据代理帮我们转发给对方服务器我们就可以马上断开代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。 可能很多朋友还不能很好的理解我来描述一下吧.我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割对结论没有影响)也就是说他一秒可以保证100个用户的Search请求服务器允许的最大连接时间为60s那么我们使用CC模拟120个用户并发连接那么经过1分钟服务器的被请求了7200次处理了6000次于是剩下了1200个并发连接没有被处理.有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的这1200个是在最后10秒的时候发起的想丢?!还早经过计算服务器满负开始丢连接的时候应该是有7200个并发连接存在队列然后服务器开始120个/秒的丢连接我们发动的连接也是120个/秒服务器永远有处理不完的连接服务器的CPU 100%并长时间保持然后丢连接的60秒服务器也判断处理不过来了新的连接也处理不了这样服务器达到了超级繁忙状态。 当然CC也可以利用这里方法对FTP进行攻击也可以实现TCP-FLOOD这些都是经过测试有效的。 防范方法 说了攻击原理大家肯定会问那么怎么防御?使用硬件防火墙我不知道如何防范除非你完全屏蔽页面访问我的方法是通过页面的编写实现防御。 1. 使用Cookie认证.这时候朋友说CC里面也允许Cookie但是这里的Cookie是所有连接都使用的所以启用IPCookie认证就可以了。 2. 利用Session.这个判断比Cookie更加方便不光可以IP认证还可以防刷新模式在页面里判断刷新是刷新就不让它访问没有刷新符号给它刷新符号.给些示范代码吧Session: 程序代码: 〈% if session(refresh)〈〉 1 then Session(refresh)session(refresh)1 Response.redirect index.asp End if %〉 这样用户第一次访问会使得Refresh1第二次访问正常第三次不让他访问了认为是刷新可以加上一个时间参数让多少时间允许访问这样就限制了耗时间的页面的访问对正常客户几乎没有什么影响。 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 filetruefalse end if set tsObject fsoObject.OpenTextFile(file8) 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线攻击服务器马上满负荷了。 代码层的防御需要从点点滴滴做起一个脚本代码的错误可能带来的是整个站的影响甚至是整个服务器的影响慎之!