看我利用PHP建立防DDOS防火墙

王朝互联网·作者佚名  2011-12-20
窄屏简体版  字體: 小  |  中  |  大  |  超大  

我今天要来谈谈一些高深的技术问题。话说,兄弟我之前也经常被DDOS处理DDOS的方法则是求助于大内高手帮忙处理,但是老是求助人家,也会不好意思,况且DDOS也永远会有,所以只能自己解决:买防火墙。

防火墙很多种,各有各的不同,唯一的相同点,就是一个字“贵”,且防火墙的设置也是一个很大的繁琐问题,设置好了之后,对于程序产生的负面的影响,也算一个大问题。所以,我在考虑能否不用钱,用简单的方法实现PHP防火墙的编写。

于是编写出了第一个版本:“鬼见愁一型”PHP防火墙,这个防火墙的原理很简单,记录IP的次数,一旦30秒内超过300次访问,自动跳出程序。这个防火墙被我自己测试的时候,完美的屏蔽了肉鸡的IP,本来以为很简单的完成了任务了。结果发现忽然连续三天网站被人攻陷。

查了原因,并非鬼见愁一型的毛病,而是鬼见愁一型需要用MYSQL来记录这些DDOS的肉鸡IP。而在大规模攻击下,MYSQL会崩溃掉,于是PHP防火墙也随之崩溃。出于这个原因,周同学我就编写了“鬼见愁2型PHP防火墙”。

鬼见愁二型专门围绕的MYSQL崩溃的保护进行了一个比较强悍的设计。首先它第一步不记录IP,这么一来就无需insert (插入)数据库的操作了,由于没有插入操作,因此数据库的崩溃概率小了很多。其次,它记录了总访问的数量以及运算出前10秒的访问总量。

当大规模DDOS攻击来临的时候,访问总量会超过临界值。于是PHP系统就会启动一级防护,一级防护启动之后,系统会启动“识别是肉鸡还是活人”的流程,任何一个IP都会转移到一个页面上面,叫你输入验证码,以证明是活人。活人输入之后,可以正常访问,而肉鸡不输入,则被挡在程序的外围。由于一级防护无需插入数据库,因此也不会导致数据库崩溃。

当更大规模的DDOS来临的时候,超过一个临界值,系统就会拒绝所有的服务,显示:本站暂停服务,请2小时后再来。然后跳出程序,对于极大规模的DDOS,系统就不再以服务为主了,而是重要的是保护数据库不再崩溃了。

现在遇上DDOS啊,防火墙又繁琐又麻烦,又贵。我们劳动人民应该用新型的PHP防火墙来防护DDOS,我自己亲自实践来看,只要不是“国家级”黑客,普通中小黑客完全是没啥大的问题的。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航