来源:自学PHP网 时间:2014-11-27 22:16 作者: 阅读:次
[导读] 今天自己的一台机器突然向外部发送大量数据包,可每秒到1G以上,虽然我用策略把UDP禁止包是发不出去但是很占cup啊,所以想到最后还是想办法解决了.先看源码,代码如下:?phpset_time_limit(9...
phpddos攻击的解决办法今天自己的一台机器突然向外部发送大量数据包,可每秒到1G以上,虽然我用策略把UDP禁止包是发不出去但是很占cup啊,所以想到最后还是想办法解决了. 先看源码,代码如下:
关键代码在于如下: $fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5); 方法很简单,向目标主机发送UDP包,在加上定义无限死循环,就会形成较大的压力. 这个压力是对于执行这个脚本的服务器来说的,因为它首先对自身的网宽、CPU等资源造成大量占用,如果想用这个脚本对目标站点形成压力,需要在多个服务器上执行该脚本,DDOS嘛,既然是用fsockopen请求外部,那就不让他请求. php.ini里设置,代码如下: allow_url_fopen = Off 如果这样他还是能发包,代码如下: extension=php_sockets.dll 改成 ;extension=php_sockets.dll 重启APACHE、IIS、NGINX,这样就可以防止PHP DDOS发包了. 另外有网友说,让脚本不允许设置为不超时很简单,1,把set_time_limit函数禁用,2,启用PHP的安全模式(safe_mode=on). 禁用socket函数可以把把socket模块直接全部禁用也可以禁用fsockopen函数,建议,由于socket常用于发送邮件找回密码,因此建议开启直接开启安全模式,但是这样的话,脚本每30秒超时一次,估计没有哪个“黑客”寂寞到每30秒去点一下开始DDOS. 经验:这种问题一般是网站安全引起的,我们要注意网站的安全及服务器的安全,这样就不容易被入侵了,如果会用macofee的朋友,对网站进行限制一下就会更好一些. |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com