Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Isidro

PHPost Risus 1.2.5.000

Recommended Posts

¡Muy buenas!

 

Tras la última Priority Update 3, estuvimos preparando la siguiente para ser lanzada de forma automática los siguientes días. Sin embargo, debido a que esta actualización no es simplemente de seguridad, hemos decidido publicarla de manera convencional.


Novedades

- Se ha mejorado la seguridad contra ataques CSRF en peticiones propias y ajenas al sitio.
- Se ha reemplazado la clase predeterminada de BBCodes por una prefabricada (jBBCode) en colaboración con @Kmario19.
- Se ha eliminado la condición que impedía automenciones.
- Se ha corregido un error que borraba los mensajes privados de un usuario al tratar de borrar cualquier otro contenido del mismo.
- Se ha mejorado el tiempo de carga de la parte principal en la sección "Fotos".

 

Para actualizar, podéis subir los archivos del ZIP adjunto ( phpost_risus_1_2_5_000_files.zip o MEGA )  y reemplazarlos todos. Es recomendable si no habéis realizado modificaciones tras la instalación. Si habéis realizado modificaciones, podéis seguir las siguientes instrucciones para la actualización manual:

 

Spoiler

 

1 - Abrir el archivo /inc/class/c.admin.php.

2 - Buscar:

if($_POST['bomensajes'] || $c) db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_mensajes WHERE mp_from = \''.$user_id.'\'');  db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_respuestas WHERE mr_from = \''.$user_id.'\'');

3 - Reemplazar por:

if($_POST['bomensajes'] || $c) { db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_mensajes WHERE mp_from = \''.$user_id.'\'');  db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_respuestas WHERE mr_from = \''.$user_id.'\''); }

 

4 - Abrir el archivo /inc/php/fotos.php.

5 - Buscar:

$q = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT COUNT(DISTINCT u.user_id) AS stats_miembros, COUNT(DISTINCT f.foto_id) AS stats_fotos, COUNT(DISTINCT fc.cid) AS stats_foto_comments FROM u_miembros AS u LEFT JOIN f_fotos AS f ON u.user_id = f.f_user && f.f_status = \'0\' LEFT JOIN f_comentarios AS fc ON u.user_id = fc.c_user WHERE u.user_activo = \'1\' && u.user_baneado = \'0\''));

6 - Reemplazar por:

$q = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT stats_miembros, stats_fotos, stats_foto_comments FROM w_stats WHERE stats_no = \'1\''));

 

7 - Abrir el archivo /inc/class/c.core.php.

8 - Buscar:

function parseBBCode($bbcode, $type = 'normal')

9 - Reemplazar TODA la función por:

function parseBBCode($bbcode, $type = 'normal') {
        // Class BBCode
        include_once(TS_EXTRA . 'bbcode.inc.php');
        $parser =& BBCode::getInstance();
        
        // Seleccionar texto
        $parser->setText($bbcode);

        // Seleccionar tipo
        switch ($type) {
            // NORMAL
            case 'normal':
                // BBCodes permitidos
                $parser->setRestriction(array('url', 'code', 'quote', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler', 'swf', 'video', 'goear', 'hr', 'sub', 'sup', 'table', 'td', 'tr', 'ul', 'li', 'ol', 'notice', 'info', 'warning', 'error', 'success'));
                // SMILES
                $parser->parseSmiles();
                // MENCIONES
                $parser->parseMentions();
                break;
            // FIRMA
            case 'firma':
                // BBCodes permitidos
                $parser->setRestriction(array('url', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 's', 'align', 'spoiler'));
                break;
            // NOTICIAS
            case 'news':
                // BBCodes permitidos
                $parser->setRestriction(array('url', 'b', 'i', 'u', 's'));
                // SMILES
                $parser->parseSmiles();
                break;
            // SOLO SMILES (Esta opción se mantiene por compatibilidad con versiones anteriores, pero en su lugar se recomienda utilizar la opción "normal")
            case 'smiles':
                $parser->setRestriction(array('url', 'code', 'quote', 'quotePHPost', 'font', 'size', 'color', 'img', 'b', 'i', 'u', 'align', 'spoiler', 'swf', 'goear', 'hr', 'li'));
                // SMILES
                $parser->parseSmiles();
                // MENCIONES
                $parser->parseMentions();
            break;
        }
        // Retornar resultado HTML
        return $parser->getAsHtml();
    }

 

10 - Descargar el archivo adjunto ( phpost_risus_1_2_5_000_files.zip o MEGA ).

11 - Subir la carpeta /inc/ext/JBBCode.

12 - Subir los siguientes archivos y reemplazar:

  • /inc/ext/bbcode.inc.php => Es posible que tuvieras modificaciones realizadas aquí y se pierdan. Sin embargo, incluye varios BBCodes adicionales, como los de algunos editores wysiwyg.
  • /inc/ext/QueryString.php.
  • /inc/php/ajax/ajax.feed.php.

 

FIN

 

 

Tras todo esto, tu sitio estará actualizado con la versión 1.2.5 de Risus. Es posible que en los próximos días se lance un parche destinado -principalmente- a las webs que incluyen muchas imágenes en sus posts, ya que esta actualización añade validadores de formatos y en los sitios mencionados podría aumentar el tiempo de carga. Aún así, preferimos lanzar esta actualización ahora para que contéis desde ahora con la actualización de seguridad de esta versión.

Nota: Si el tiempo de carga es excesivo, sube este archivo a tu web y reemplázalo ( phpost_risus_1_2_5_000_imgValidator.zip ).

 

¡Saludos!

  • Me gusta 5

Compartir este post


Enlace al post
Compartir en otros sitios

Buenisimo! pregunta: en la primera de las modificaciones manuales que indicas va esa llave al final del codigo?

if($_POST['bomensajes'] || $c) { db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_mensajes WHERE mp_from = \''.$user_id.'\'');  db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_respuestas WHERE mr_from = \''.$user_id.'\''); }

Gracias!

Compartir este post


Enlace al post
Compartir en otros sitios
hace 12 minutos, multitecnologias dijo:

Buenisimo! pregunta: en la primera de las modificaciones manuales que indicas va esa llave al final del codigo?

if($_POST['bomensajes'] || $c) { db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_mensajes WHERE mp_from = \''.$user_id.'\'');  db_exec(array(__FILE__, __LINE__), 'query', 'DELETE FROM u_respuestas WHERE mr_from = \''.$user_id.'\''); }

Gracias!

Sí, esa llave es la que solventa el error junto a otra que hay después del IF.

  • Me gusta 1

Compartir este post


Enlace al post
Compartir en otros sitios

No tengo permisos para descargar el archivo. 

La página que estás intentando acceder no está disponible para tu cuenta.
Editado por fem

Compartir este post


Enlace al post
Compartir en otros sitios
hace 6 minutos, fem dijo:

No tengo permisos para descargar el archivo. 

La página que estás intentando acceder no está disponible para tu cuenta.

 

Podes descargarlo directamente desde la pestaña del menu (PHPOST Rissus) en la parte superior de la pagina, submenu descarga.

Compartir este post


Enlace al post
Compartir en otros sitios
hace 1 minuto, machotecba dijo:

Podes descargarlo directamente desde la pestaña del menu (PHPOST Rissus) en la parte superior de la pagina, submenu descarga.

Si, pero la idea era sólo descargar los archivos necesarios, no el script completo y de paso avisar que el link no funciona. Gracias igual

  • Me gusta 1

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario

Crear una cuenta

Regístrate en nuestra comunidad. ¡Es fácil!

Registrar una cuenta nueva

Iniciar Sesión

¿Ya tienes cuenta? Conéctate aquí.

Iniciar Sesión

  • Similar Content

    • Por Isidro
      ¡Muy buenas! Se ha actualizado PHPost Risus con las siguientes características:
       
      - Se ha mejorado compatibilidad con PHP 7
      - Se ha actualizado reCaptcha (V2)
      - Se ha añadido editor WYSIWYG
       
      Demo: demo.phpost.net

      Se puede descargar desde aquí o desde Github. Todo aquel que desee colaborar editando y mejorando el código, puede contribuir desde Github. De esta manera, todos podrán disfrutar de la última versión en todo momento y evitar tener que estar aplicando parches.
       
      Cómo actualizar:
      Como es una versión en la que se han editado muchos archivos, hay que reemplazar todos los archivos modificados. Los que prefieran no actualizar, pueden visitar el club "Escuela de Actualización de Risus Phpost" para aplicar las actualizaciones que necesiten manualmente.
       
      Los que hayan decidido reemplazar, lo único que tienen que hacer después, es ejecutar la siguiente consulta SQL:
      ALTER TABLE `w_configuracion` ADD `pkey` VARCHAR(55) NOT NULL AFTER `offline_message`, ADD `skey` VARCHAR(55) NOT NULL AFTER `pkey`;  
       
      ¡Gracias!
    • Por Isidro
      ¡Muy buenas! En este hilo se indica cómo actualizar a la versión lanzada el día 17 de febrero de 2016. Es un poco tarde, sí, pero nunca está de más.
       
      Novedades
      - Se ha corregido una consulta en los TOPS.
      - Se ha añadido un filtro para evitar establecer un rango predeterminado desde un sitio ajeno a la administración.

      Para actualizar, sigue los siguientes pasos:
       
      1. Abrir /inc/php/top.php.
      2. Buscar:
      $fecha = empty($_GET['fecha']) || $_GET['fecha'] > 5 ? 5 : (int)$_GET['fecha']; 3. Reemplazar por:
      $fecha = empty($_GET['fecha']) || $_GET['fecha'] > 5 || !ctype_digit($_GET['fecha']) ? 5 : (int)$_GET['fecha'];  
      1. Abrir /inc/class/c.admin.php.
      2. Reemplazar la función SetDefaultRango() por:
      function SetDefaultRango() { global $tsCore; // if($_SERVER['HTTP_REFERER'] == $tsCore->settings['url'].'/admin/rangos?save=true' || $_SERVER['HTTP_REFERER'] == $tsCore->settings['url'].'/admin/rangos') { $rid = $tsCore->setSecure($_GET['rid']); // $dato = db_exec('fetch_assoc', db_exec(array(__FILE__, __LINE__), 'query', 'SELECT rango_id, r_type FROM u_rangos WHERE rango_id = \'' . (int)$rid . '\' LIMIT 1')); if (!empty($dato['rango_id']) && $dato['r_type'] == '0') { if (db_exec(array(__FILE__, __LINE__), 'query', 'UPDATE w_configuracion SET c_reg_rango = \'' . (int)$rid . '\' WHERE tscript_id = \'1\'')) return true; } else return 'El rango no existe o no es posible utilizarlo'; } else return 'Petición inválida'; }  
      ¡Listo! Ahora actualiza a la versión 1.2.5.600.
    • Por Isidro
      ¡Muy buenas! En este hilo se indica cómo actualizar a la versión lanzada el día 10 de abril de 2016.
       
      Novedades
      - Se ha actualizado la versión de la API de Imgur para poder seguir subiendo fotos.

      Para actualizar, puedes subir el archivo adjunto ( phpost_risus_1_2_5_600_files.zip ) o bien seguir los siguientes pasos:
       
      1. Abre el archivo inc/class/c.upload.php.
      2. Busca:
      'imgur' => 'http://api.imgur.com/2/upload.json?key=24bf6070f45ed716e8cf9324baebddbd', 3. Reemplaza por:
      'imgur' => 'https://api.imgur.com/3/image.json', 4. Busca: 
      //Abrir conexion $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch,CURLOPT_URL,$servidor); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$params); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 5. Reemplaza por:
      // Autorizar conexión $headers = array('Authorization: Client-ID 318cdea21b8f8c0'); // Abrir conexión $ch = curl_init(); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_URL, $servidor); curl_setopt($ch, CURLOPT_TIMEOUT , 30); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER , $headers); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 6. Busca:
      return 'image='.$url; 7. Reemplaza por:
      $img = file_get_contents($url); return array('image' => base64_encode($img)); 8. Busca:
      $src = $image_data->upload->links->original; 9. Reemplaza por:
      $src = $image_data->data->link;  
    • Por Isidro
      Novedades
      - Se han corregido varias variables para las consultas de "nuevo mensaje" y "responder mensaje".
       
      Pasos para actualizar
      A-) Puedes subir el archivo adjunto ( phpost_risus_1_2_5_200_files.zip | MEGA ) y listo.
       
      B-) O puedes seguir los pasos manuales:
      1. Abre el archivo inc/class/c.mensajes.php.
      2. Busca (línea 69):
      $mensaje = $tsCore->setSecure(substr($_POST['mensaje'],0,1000), true); 3. Reemplaza por:
      $mensaje = substr($_POST['mensaje'],0,1000); 4. Busca (línea 127):
      \''.$mensaje.'\' 5. Reemplaza por:
      \''.$tsCore->setSecure($mensaje, true).'\' 6. Busca (línea 143):
      $mp_body = $tsCore->setSecure(substr($_POST['body'],0,1000), true); 7. Reemplaza por:
      $mp_body = substr($_POST['body'],0,1000); 8. Busca (línea 159):
      \''.$mp_body.'\' 9. Reemplaza por:
      \''.$tsCore->setSecure($mp_body, true).'\' 10. Busca (dos veces, línea 121 y 173): 
      \''.$preview.'\' 11. Reemplaza por:
      \''.$tsCore->setSecure($preview, true).'\'  
    • Por Isidro
      Novedades
      - Se ha corregido el enlace hacia el perfil en las menciones.
      - Se ha corregido el enlace de la imagen agregada desde el formulario en "Agregar post".
       

      Actualización manual:
       
      1.1) Abrir el archivo inc/ext/bbcode.inc.php.
      1.2) Buscar:
      $replace = '@<a href="' . $this->settings['url'] . '/' . $user . '" class="hovercard" uid="' . $uid . '">' . $user . '</a> '; 1.3) Reemplazar por:
      $replace = '@<a href="' . $this->settings['url'] . '/perfil/' . $user . '" class="hovercard" uid="' . $uid . '">' . $user . '</a> ';  
      2.1) Abrir el archivo themes/{tu_plantilla}/templates/modules/m.agregar_sidebar.tpl.
      2.2) Buscar:
      img = img.replace(ext,'th.' + ext); 2.3) Reemplazar por:
      //img = img.replace(ext,'th.' + ext);  
      Nota: en la administración seguirá apareciendo el aviso indicando que no estáis actualizados, pero hacer caso omiso al mismo.
  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

  • Patrocinador



  • ×