Jump to content
Alan

[Fix Risus] Fuente de los BBCode

Recommended Posts

Hola, como verán recientemente hay un usuario que anda molestando con un error en la fuente de los BBcodes. El error consiste básicamente en que dicho BBcode carece de verificación, entonces se podía ingresar algunos carácteres HTML y poner una fuente gigante lo que no permitía navegar por los posts y al cliquear llevaba a una página, no representa un error grave en sí, por lo que no hay que alarmarse ya que sus datos personales y de hosting están seguros. Sin embargo puede ser muy molesto, por lo que es muy recomendado instalar este fix.

 

Instalación automática: Para solucionarlo suban la carpeta INC que subí AQUÍ en la raíz de su sitio y reemplacen los archivos y ya estará solucionado el error. 

Instalación manual: Si han modificado los archivos, pueden optar por instalarlo manualmente:

 

  1. Abran el archivo bbcode.inc.php ubicado en /inc/ext/bbcode.inc.php y busquen (está en la línea 10):
require_once 'JBBCode/validators/ImgValidator.php';

  Y abajo coloquen:

require_once 'JBBCode/validators/FontValidator.php';

Busquen:

 

        $imgValidator = new \JBBCode\validators\ImgValidator();

Y debajo coloquen:

        $fontValidator = new \JBBCode\validators\FontValidator();

Busquen:

            array('tag' => 'font', 'replace' => '<span style="font-family: {option}">{param}</span>', 'option' => true),

Y lo reemplazan por:

            array('tag' => 'font', 'replace' => '<span style="font-family: {option}">{param}</span>', 'option' => true, 'validOption' => $fontValidator),

2.  Crear un archivo con nombre FontValidator.php dentro de /inc/ext/JBBcode/validators/ con el siguiente contenido:

 

<?php

namespace JBBCode\validators;

require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'InputValidator.php';

/**
 * Validador de fuentes para evitar kakeos
 *
 * @author Alan
 * @since Sep 2016
 */

class FontValidator implements \JBBCode\InputValidator {

    /**
     * Retorna true si $input es alfabético
     *
     * @param $input string a validar
     */
    public function validate($input) {
        return !!preg_match('/^[a-z0-9\s]+$/i', $input);
    }

}

Y ya debería funcionar, no digo que esto sea un fix oficial ya que lamentablemente ya no pertenezco al staff :( pero cuando Isidro lo vea podrá decidir que es lo que hace.

 

T9dXaMo.png

 

Saludos!

Editado por Rhuan
  • Me gusta 7

Compartir este post


Enlace al post
Compartir en otros sitios

esta muy bien que se arreglen estos problemas pero no deberían atacarse entre ustedes mismos... estaban tan confiados que no existía ese problema que usted mismo escribió algo tipo "si bla bla bla entonces que hackee la demo" osea yo me quedé como ¿es en serio? no debe haber ese egocentrismo de creer que todo esta perfecto... yo me asuste cuando escribí un comentario en la demo con el codigo que dejaron y funciono!! entonces si algo tan simple se pasa por alto, que puedo pensar del núcleo?? que es mas complejo... tambien me di cuenta que muchos dejan opiniones muy buenas y se llevan negativos o advertencias solo por no estar de acuerdo con el otro.. solo por expresarse y eso tambien esta muy mal...

Compartir este post


Enlace al post
Compartir en otros sitios
hace 22 minutos, suggeidy dijo:

esta muy bien que se arreglen estos problemas pero no deberían atacarse entre ustedes mismos... estaban tan confiados que no existía ese problema que usted mismo escribió algo tipo "si bla bla bla entonces que hackee la demo" osea yo me quedé como ¿es en serio? no debe haber ese egocentrismo de creer que todo esta perfecto... yo me asuste cuando escribí un comentario en la demo con el codigo que dejaron y funciono!! entonces si algo tan simple se pasa por alto, que puedo pensar del núcleo?? que es mas complejo... tambien me di cuenta que muchos dejan opiniones muy buenas y se llevan negativos o advertencias solo por no estar de acuerdo con el otro.. solo por expresarse y eso tambien esta muy mal...

 

No es que seamos egocéntricos, pero es la verdad si tanto critican, que hackeen la demo y así sabremos que vulnerabilidad tiene, una web con muchos mods instalados nunca es de confiar, ademas no es que el script sea perfecto, nada lo es perfecto y el problema es que no sabemos de todas las posibles vulnerabilidades que puede llegar a tener el script y por eso se pide que se hackee la demo, para conocer que es lo que se tiene que arreglar, ¿te asustaste porque en la demo funciona el comentario?, que esperabas si hace menos de 50 minutos se publico el fix, ademas que eso no es hackear. 

 

Editado por ayuda031
  • Me gusta 1

Compartir este post


Enlace al post
Compartir en otros sitios
hace 4 minutos, KillerJohn dijo:

Genio Total! muchas gracias ;)

De nada! Hice una actualización en FontValidator.php, si ya lo instalaste reemplaza el archivo por lo que está en el post

hace 21 minutos, suggeidy dijo:

esta muy bien que se arreglen estos problemas pero no deberían atacarse entre ustedes mismos... estaban tan confiados que no existía ese problema que usted mismo escribió algo tipo "si bla bla bla entonces que hackee la demo" osea yo me quedé como ¿es en serio? no debe haber ese egocentrismo de creer que todo esta perfecto... yo me asuste cuando escribí un comentario en la demo con el codigo que dejaron y funciono!! entonces si algo tan simple se pasa por alto, que puedo pensar del núcleo?? que es mas complejo... tambien me di cuenta que muchos dejan opiniones muy buenas y se llevan negativos o advertencias solo por no estar de acuerdo con el otro.. solo por expresarse y eso tambien esta muy mal...

Hace casi 4 años que no me conectaba, no estoy muy al tanto de las modificaciones que han hecho ni tengo contacto con Isidro tampoco

 

hace 24 minutos, MagicInventor dijo:

ñee me superaste, recién lo acabo de hacer pero con regex... 

 

PD: ctype_alpha no soporta espacios, fuentes con nombres con espacios no van a funcionar.

Ni sabía que había fuentes con espacios, ya lo actualicé gg

hace 4 minutos, ayuda031 dijo:

 

No es que seamos egocéntricos, pero es la verdad si tanto critican, que hackeen la demo y así sabremos que vulnerabilidad tiene, una web con muchos mods instalados nunca es de confiar, ademas no es que el script sea perfecto, nada lo es perfecto y el problema es que no sabemos de todas las posibles vulnerabilidades que puede llegar a tener el script y por eso se pide que se hackee la demo, para conocer que es lo que se tiene que arreglar, ¿te asustaste porque en la demo funciona el comentario?, que esperabas si hace menos de 50 minutos se publico el fix, ademas que eso no es hackear. 

 

Exacto! Además de que cuando yo me fui todavía ni habían implementado ese sistema de JBBCode, recién ahora que descargué el script nuevamente pude ver que le han metido muchas cosas nuevas 

Compartir este post


Enlace al post
Compartir en otros sitios
hace 19 minutos, ayuda031 dijo:

 

¿te asustaste porque en la demo funciona el comentario?, que esperabas si hace menos de 50 minutos se publico el fix, ademas que eso no es hackear. 

 

yo no he dicho que es hackeo... yo dije que era un bug en mi comentario donde estaba el codigo, vez?? justo a esto me refería con egocentrismo... se creen mucho por saber un poco mas...  yo me registre ayer para aprender!! y ya me dan ganas de irme a otra parte... 

Compartir este post


Enlace al post
Compartir en otros sitios
hace 2 horas, suggeidy dijo:

esta muy bien que se arreglen estos problemas pero no deberían atacarse entre ustedes mismos... estaban tan confiados que no existía ese problema que usted mismo escribió algo tipo "si bla bla bla entonces que hackee la demo" osea yo me quedé como ¿es en serio? no debe haber ese egocentrismo de creer que todo esta perfecto... yo me asuste cuando escribí un comentario en la demo con el codigo que dejaron y funciono!! entonces si algo tan simple se pasa por alto, que puedo pensar del núcleo?? que es mas complejo... tambien me di cuenta que muchos dejan opiniones muy buenas y se llevan negativos o advertencias solo por no estar de acuerdo con el otro.. solo por expresarse y eso tambien esta muy mal...

Aquí nadie se ataca entre nadie... Es magic el que ataca a todos 

 

yao_ming_meme_by_lecatinga-d4kpe13.jpg

Compartir este post


Enlace al post
Compartir en otros sitios
hace 1 hora, suggeidy dijo:

yo no he dicho que es hackeo... yo dije que era un bug en mi comentario donde estaba el codigo, vez?? justo a esto me refería con egocentrismo... se creen mucho por saber un poco mas...  yo me registre ayer para aprender!! y ya me dan ganas de irme a otra parte... 

No creemos mas? nunca dije que nos creemos mas, quieren exigirle algo a un script que es gratuito y que sale a flote con la ayuda de la comunidad, solo digo que si el script es vulnerable no lo sabemos hasta que se lo pruebe.

Si quieres irte vete, que le puedo decir a alguien que prefiere tachar de egocéntrico a los demás y no tratar de ver las cosas del lado del otro, yo entiendo que tienes miedo a que alguien venga y hackee tu web, pero ninguna web esta libre de eso, a risus se le hace las actualizaciones de seguridad como es debido pero Isidro no es perfecto y siempre se le puede escapar algo y para eso está la comunidad, para detectar este tipos de errores y solucionarlo, y ahí viene la mano de que si hackeas la demo recién sabremos que problema tiene el script o si realmente el problema es del script, no decimos "hackea la demo" solo porque seamos egocéntricos, sino que se ha dado el caso de gente que daña su web a propósito solo para darle mala fama al script, o webs que se vuelven vulnerables por el exceso de modificaciones que tienen.... 

  • 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


  • Similar Content

    • Por RodrigoVGarcia
      Hola compañeros de la web. Tengo un inconveniente con el bbcode que no puedo solucionar. Me ayudo un amigo pero tampoco le anda.
      Necesito agregar una etiqueta con el siguiente código:
      array('tag' => 'ads1', 'replace' => '<div class="ads1"> <iframe src="https://api.paymentwall.com/api/subscription/?key=1983189fshfhs8934387&uid=' .$_SERVER["HTTP_CLIENT_IP"]. '&widget=p1_1" width="750" height="800" frameborder="0"></iframe></div>'), En este codigo no me lo toma, simplemente no anda. Es un problema de comillas y de codigo php. Pero como hago para que ande??  
    • Por carpriser
      Hola Amigos yo por aquí molestándo
       
      He buscado por todo phpost y no he podido encontrar un mod que me permita decidir que links son para ocultar y cuales no

      Tengo un users que ponen directamente esta clase de links http://cutwin.com/W8nKBA5a
      Y debo entrar al post y encerrarlo así http://cutwin.com/W8nKBA5a uno por uno

      Tengo otros users que ponen links de lupaste http://lupaste.com/?v=22369 y quedan expuestos no puedo poner la opción de ver solo para Sólo usuarios registrados pues para publicarlos en las redes me pone problema
      Mi propuesta es: se puede crear un mod que pueda automáticamente encerrar los links en un , dando la oportunidad de escoger que servidores son para ocultar y cuales no
      Perdonen la molestadera pero no tengo a quien mas acudir
       
      Regalamen una respuesta y disculpen las molestias
    • Por Muerte
      Hola de nuevo, publico el fix definitivo para evitar que nos publiquen shout en blanco o larguisimos ya sea mediante el uso de las teclas o de forma escrita de esta forma (\n \t \r) solo para molestar, la prueba la pueden hacer en la pagina demo y verán que el bug esta por default y no afecta en la seguridad pero jode mucho en los muros de sitios que tienen el modulo en la pagina de inicio.
       
      Demo del bug en la version default:  http://demo.phpost.net/perfil/pitudo
       
      1) Se van al archivo c.muro.php y buscan:
       
      // TIPO DE PUBLICACION y arriba de eso colocan esto:
       
      //COMPROBAR SI EL CAMPO ESTA VACIO $a = trim($_POST['data']); $a = preg_replace("/\r\n+|\r+|\n+|\t+/i", "<br/>", $a); $b = str_replace(array('\n','\r','\t'), array('n','r','t'), $a); $data = $b; 2) En el mismo archivo buscan esto:
      $text = str_replace(array("\n","\t",' '),"",$data); // VACIO? if(strlen($text) <= 0) return '0: Tu publicaci&oacute;n debe tener al menos una letra.';  
      y lo cambian por esto:
       
      if($a){ $data = $tsCore->setSecure($data, true); }else{ return '0: Tu shout esta vacio'; }  
      Les dejo unas capturas de como se ve ya solucionado y como dije pueden comprobar este fallo en la demo oficial
       







       
       
       
    • Por Muerte
      Este pequeño bug lo tiene el script por defecto y se que es una boludes pero a pesar de que es muy divertido publicar shout vacios en los sitios que no lo tienen aplicado y usan el modulo de shouts en la home pues ya me canso jaja asi que les dejo el fix hay otro que tambien sirve para limpiar las tabulaciones o saltos de linea excesivos que se pueden hacer en las publicaciones pero como depende de su como tengan modificado su muro y bueno asi que solo dejo este para que no les publiquen shouts vacios va.
       
      se van a c.muro.php y buscan:
       
      $data = $tsCore->setSecure($_POST['data'], true);
      $data = $tsCore->setSecure($_POST['data'], true); y abajo agregan esto:
      $data = str_replace("\n"," ",$_POST['data']);  
      Capturas de que esto pasa en la default y en otras plantillas sin actualizar, dejo una demo del error y una captura en caso de que me baneen la cuetna ya que lo hago en un sitio con el error. compartinga.com
       

    • Por Muerte
      Es algo sencillo pero que jode mucho al la hora de querer completar el perfil y tenerlo al 100% de manera falsa jaja, por si a alguien le interesa y le sirve
      en c.cuenta.php busacas:
       
      $updates = $tsCore->getIUP($perfilData, 'user_'); y abajo agregas:
      //FIX ESPACIOS BACIOS O LLENADO FALSO CON SALTOS DE LINEA O ESPACIOS if ($updates == ' '){ $updates = str_replace(' ', '', $updates); $updates = str_replace("\n"," ",$updates); }else{ $updates = str_replace(' ', '', $updates); $updates = str_replace("\n"," ",$updates); } //  
      luego buscas un poco mas abajo esto:
       
      $updates = $tsCore->getIUP($perfilData, 'p_'); y abajo agregas:
      //FIX ESPACIOS BACIOS O LLENADO FALSO CON SALTOS DE LINEA O ESPACIOS if ($updates == ' '){ $updates = str_replace(' ', '', $updates); $updates = str_replace("\n"," ",$updates); }else{ $updates = str_replace(' ', '', $updates); $updates = str_replace("\n"," ",$updates); } // y ahora si ya no abra errores, gracias por reportarlo
  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

×