Página 1 de 1

bug en mchat  Tema Solucionado

Publicado: 14 Ago 2013, 02:34
por elpanatibu
Realmente es para alertar de un bug que trae el mchat grave el cual permite a cualquiera sin permisos poder editar y borrar mensajes en el mchat. Su creador a puesto a un parche para acomodar esto. estuve buscando en el foro y no encontré otro post que hablara del asunto. si es así disculpas. Aquí esta el link https://www.phpbb.com/customise/db/mod/ ... 46#p245646

abrir mchat.php
Encontrar

Código: Seleccionar todo

       // Edit function...
       case 'edit':

          // edit and delete auths
          $mchat_edit = $auth->acl_get('u_mchat_edit') ? true : false;
          $mchat_del = $auth->acl_get('u_mchat_delete') ? true : false;   
          // If mChat disabled and not edit
          if (!$config['mchat_enable'] || !$mchat_edit)
          {
             // Forbidden (for jQ AJAX request)
             header('HTTP/1.0 403 Forbidden');
             exit_handler();
          }
          
          // Reguest...
          $message_id = request_var('message_id', 0);
Reemplazar por

Código: Seleccionar todo

       // Edit function...
       case 'edit':
       
          $message_id = request_var('message_id', 0);
          // check for the correct user
          $sql = 'SELECT *
             FROM ' . MCHAT_TABLE . '
             WHERE message_id = ' . (int) $message_id;      
          $result = $db->sql_query($sql);
          $row = $db->sql_fetchrow($result);
          $db->sql_freeresult($result);
          // edit and delete auths
          $mchat_edit = $auth->acl_get('u_mchat_edit')&& ($auth->acl_get('m_') || $user->data['user_id'] == $row['user_id']) ? true : false;
          $mchat_del = $auth->acl_get('u_mchat_delete') && ($auth->acl_get('m_') || $user->data['user_id'] == $row['user_id']) ? true : false;   
          // If mChat disabled and not edit
          if (!$config['mchat_enable'] || !$mchat_edit)
          {
             // Forbidden (for jQ AJAX request)
             header('HTTP/1.0 403 Forbidden');
             exit_handler();
          }
          
          // Reguest...
          
Encontrar

Código: Seleccionar todo

       // Delete function...
       case 'delete':
          
          // must have auths to delete
          $mchat_del = ($auth->acl_get('u_mchat_delete')) ? true : false;
          // Reguest...
          $message_id = request_var('message_id', 0);
Reemplazar

Código: Seleccionar todo

       // Delete function...
       case 'delete':
          
          $message_id = request_var('message_id', 0);
          // check for the correct user
          $sql = 'SELECT *
             FROM ' . MCHAT_TABLE . '
             WHERE message_id = ' . (int) $message_id;      
          $result = $db->sql_query($sql);
          $row = $db->sql_fetchrow($result);
          $db->sql_freeresult($result);
          // edit and delete auths
          $mchat_edit = $auth->acl_get('u_mchat_edit')&& ($auth->acl_get('m_') || $user->data['user_id'] == $row['user_id']) ? true : false;
          $mchat_del = $auth->acl_get('u_mchat_delete') && ($auth->acl_get('m_') || $user->data['user_id'] == $row['user_id']) ? true : false;

Re: bug en mchat

Publicado: 14 Ago 2013, 13:14
por ThE KuKa
Gracias por el aviso. :wink:

Adjunto corregido para que otros usuarios ya no tengan que editar esa parte:
http://www.phpbb-es.com/foro/mensaje223404.html#p223404