从WEB的性能测试浅谈如何简单防范CC攻击

操作方法

  • 01

    1、Web性能测试 Web性能测试涉及的范围太广,但一般web开发者在程序上线以后很多都曾遇到过性能的问题。普遍表现为页面速度开始急剧变慢,正常访问时间变的很长,或则干脆给你抛出异常错误页面。这里会涉及到很多可能发生的情况,举例几个最主要发生的情况: * 数据库连接超过最大限制,目前一般表现为程序的连接池满,拒绝了与数据库的连接。 * 数据库死锁 * Web Server 超过最大连接数(一般在虚拟主机上才会限制) * 内存泄漏 * Http连接数太多,即访问量超过了机器和软件设计正常所能提供的服务

  • 02

    2、CC攻击 CC主要是用来攻击页面的.大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观。 一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读读帖子的权限,如果有,就读出帖子里面的内容,显示出来??这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大. CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面).这一点用一个一般的性能测试软件就可以做到大量模拟用户并发。 假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过 1分钟,服务器的被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理.有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列, 然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态. 我们假设服务器处理Search只用了0.01S,也就是10毫秒(这个速度你可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,可以想象可怕了吧,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大. 泽众软件  www.spasvo.com

  • 03

    3、防范方法 说了攻击原理,大家肯定会问,那么怎么防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御. 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,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么影响. 这样,就可以防范一般的CC攻击了。

(0)

相关推荐

  • 腾讯设计师:浅谈小红点的设计

    小编:今天给大家讲解一个你可能会忽略的设计点,这个细节还是很影响用户体验的.如何去更好的应用它?接下来就为大家解惑,让原本烦人的"小妖精"真正的被用户所接受. 导语 随着各类App ...

  • 浅谈开微店的技巧 想开微店做微商但是不知道微店怎么开?

    微店怎么开,对一些中小卖家来说还是丈和尚摸不着头脑。其实很简单。一部智能手机,两分钟的事就可以成功开设一家自已的微店,那么今天我就来浅谈一下如何开微店。 微店,很可怕。将来有可能会垄击淘宝,因此聪明的 ...

  • 浅谈新手选择使用Linux桌面的七个注意点

    这个问题没有轻松的答案,如果你是新用户,之前没有用过任何Linux桌面,更是这样.围绕这个话题而写的文章大多数也没有多大帮助,因为它们主要阐述什么最适合新用户使用,而不是帮助新用户自行确定.要是你用过 ...

  • 浅谈为你的 Linux 服务器加把锁

    无论你使用的哪种 Linux 发行版,你都需要使用基于 iptables 的防火墙来保护它. 啊哈!你已经设置好了你的第一台 Linux 服务器并且已经准备发车了!是么?嗯,慢着. 默认情况下,你的 ...

  • 浅谈蜀门各职业后期该如何选择好装备

    浅谈蜀门各职业后期该如何选择好装备 步骤/方法 01 峨眉 峨眉的装备分ZTZB和TS以及50+紫装的TB和ZTS,当然不用说ZTS的装备是最好的.针对大众玩家来说,高级峨眉后期ZT的属性是最好的,无 ...

  • 浅谈T恤印花种类

    操作方法 01 T恤服装的盛行带动了T恤印花行业的发展,现在的T恤没有不印花的,印花就像T恤服装的附加值产品,好像没有了印花,这t恤就不值钱了,本文浅谈T恤印花种类.  T恤服装的盛行带动了T恤印花行 ...

  • 营销手法——浅谈“捆绑销售”

    操作方法 01 最近上映了一部名叫"无人区"的电影不知道大家有没有去看,之所以想写这篇文章的原因是这部电影里面的一句台词给了我启发--"捆绑销售"相信做营销这行 ...

  • 货币战争游戏浅谈

    货币战争游戏浅谈,小编跟大家分享一些我个人的小小经验. 工具 01 货币战争SJC0620 操作方法 01 在货币战争里不说别的,其实这款游戏我玩的不深,没有往高级玩,前期十五级前,前期的游戏就是战役 ...

  • 《幻想三国》最新攻打皇城浅谈

    操作方法 01 简介:<幻想三国>最新攻打皇城浅谈 工具/原料:<幻想三国>GCH1210 方法/步骤: 02 第一步骤: 各位都带1个兵冲像皇城,要不要有技能都无所谓,这个步 ...