Проверте код(yязвим?)

Discussion in 'PHP' started by TreV@N, 28 Sep 2010.

  1. TreV@N

    TreV@N Elder - Старейшина

    Joined:
    14 Jul 2008
    Messages:
    135
    Likes Received:
    48
    Reputations:
    19
    Проверте код на уязвимости

    Здравствуйте.Проверте код на уязвимости.
    PHP:
    <?
    if (
    $_GET['a']) {
        
    define('_COMMON'1);
        include(
    '../../../include/_common.php');
        require_once 
    $data_path.'JsHttpRequest_Php5.php';
        include(
    '/home/virtual/site.com/system/functions/path.php');
        
    $buf = array();
        
    $who_in_rooms = array();
        
    $who_in_rooms_num 0;
        
    $memcache_name 'who_in_chat';
        if (!
    $buf $memcache->get($memcache_name)) {
            
    $r sql("SELECT `nick`, `room`, `gender` FROM `sess` ORDER BY `room`, `nick`");
            
    $who_in_rooms_num mysql_num_rows($r);
            while (
    $d mysql_fetch_assoc($r)) {
                
    $who_in_rooms[$d['room']][] = $d['nick'];
            }
            
    $buf['who_in_rooms_num'] = $who_in_rooms_num;
            
    $buf['who_in_rooms'] = $who_in_rooms;
            
    $memcache->set($memcache_name$bufMEMCACHE_COMPRESSED30);
        } else {
            
    $who_in_rooms_num $buf['who_in_rooms_num'];
            
    $who_in_rooms $buf['who_in_rooms'];
        }
    }
    for(
    $i=1;$i<=$rooms;$i++) {
        if (isset(
    $who_in_rooms[$i]) && count($who_in_rooms[$i])>0) {
            echo 
    $lang['room_name'][$i];
            if (isset(
    $who_in_rooms[$i])) {
                echo 
    '('.count($who_in_rooms[$i]).')';
            } else {
                echo 
    '(0)';
            }
            echo 
    '<div id="room">'."\n";

                for (
    $n=0;$n<count($who_in_rooms[$i]);$n++) {
                    echo 
    '<span style="white-space: nowrap;"><a href="http://site.name/'.path($who_in_rooms[$i][$n]).'/" target="_blank" onmouseover="ShowUserInfo(event, \''.$who_in_rooms[$i][$n].'\'); return false;" onmouseout="HideUserInfo(); return false;" class="inick">'.$who_in_rooms[$i][$n].'</a></span>';
                    if ((
    count($who_in_rooms[$i])-1)!=$n) {
                        echo 
    ', '."\n";
                    }
                }
                
    $memcache_name 'chat_index_mess'.$i;
                
    $messages_array = array();
                if (!
    $messages_array $memcache->get($memcache_name)) {
                    
    $messages_array = array();
                    
    $r sql("SELECT * FROM `mess` WHERE `privat`='0' AND `tip`='mess' AND `room`=".$i." ORDER BY `id` DESC LIMIT 7");
                    while (
    $d mysql_fetch_assoc($r)) {
                        
    $messages_array[] = $d;
                    }
                    if (
    count($messages_array)>0) {
                        
    $messages_array array_reverse($messages_array);
                    }
                    
    $memcache->set($memcache_name$messages_arrayMEMCACHE_COMPRESSED5);
                }
                if (
    count($messages_array)>0) {
                    echo 
    '<div style="border: 1px #bbbbbb dotted; padding: 2px; margin-top: 1px; color: #BBBbBb; padding-left: 5px; font-weight: normal;">'."\n";
                }
                for (
    $m_a=0;$m_a<count($messages_array);$m_a++) {
                    if (
    $messages_array[$m_a]['to']!='[]') {
                        
    preg_match_all("/\[(${reg_checklogin_min})(?:\]\:|\])/"$messages_array[$m_a]['to'], $arr);
                        
    $messages_array[$m_a]['to'] = '';
                        
    sort($arr[1], SORT_STRING);
                        
    reset($arr[1]);
                        for(
    $m_a_i=0;$m_a_i<count($arr[1]);$m_a_i++) {
                            
    $messages_array[$m_a]['to'] .= ''.$arr[1][$m_a_i].'';
                            if (
    $m_a_i<count($arr[1])-1) {
                                
    $messages_array[$m_a]['to'] .= ', ';
                            } else {
                                
    $messages_array[$m_a]['to'] .= ' &raquo; ';
                            }
                        }
                    } else {
                        
    $messages_array[$m_a]['to'] = '';
                    }
                    echo 
    '<span style="color: ThreedDarkShadow; font-weight: bold;">'.$messages_array[$m_a]['nick'].': '.($messages_array[$m_a]['to']!=''?$messages_array[$m_a]['to']:'').'</span> '.str_replace("\'","'",$messages_array[$m_a]['message']).'<br>'."\n";
                }
                if (
    count($messages_array)>0) {
                    echo 
    '</div>'."\n";
                }

            echo 
    '</div><br>';
        }
    }
    echo 
    $lang['all_in_chat'].': '.$who_in_rooms_num;
    ?> 
     
    #1 TreV@N, 28 Sep 2010
    Last edited: 28 Sep 2010
  2. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,194
    Reputations:
    252
    sqlinj нет
     
  3. TreV@N

    TreV@N Elder - Старейшина

    Joined:
    14 Jul 2008
    Messages:
    135
    Likes Received:
    48
    Reputations:
    19
    Спасибо