He descubierto un Bug menor en el foro relacionado con el ¿parseador de texto?.

Iniciado por Eleкtro, 9 Diciembre 2013, 07:34 AM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Hola,

Estaba tratando de enviar cierta información a un compañero del foro pero me salia un extraño error al intentar enviar el mensaje, así que indagando y editando el contenido del mensaje he descubierto cual era el problema, y se trata de este:

Loquesea@Loquesea.com; Loquesea@Loquesea.com

Símplemente traten de escribir y publicar dos emails separados por una coma, y no podrán hacerlo, saldrá este error al intentar publicar/previsualizar un post:
You don't have permission to access /post2.html;start=0;board=XX on this server.

O este otro al intentar mandar un mensaje:
You don't have permission to access /pm.html;sa=send2 on this server.

En el ejemplo usé un punto-y-coma, deben usar una coma para ver el error.

No soy Admin de ningún foro así que disculpar si me equivoco pero aún sin conocer como se crea un foro SMF o como funciona, lo primero que se me viene a la cabeza es que algún parseador (quizás el parser que se encarga de filtrar las palabras prohibidas) está haciendo mal su trabajo produciendo algún bug, o quizás es algún otro parser que trata de parsear cadenas delimitadas por comas, lo dejo ahí por si os ayuda a encontrar el causante del error.

Saludos!








z3nth10n

Según creo, y que me corrijan si no estoy en lo cierto, tienes que usar comillas dobles...

"Loquesea@Loquesea.com"; "Loquesea@Loquesea.com"

Un saludo.

Interesados hablad por Discord.

Eleкtro

Pues si, buena observación, por lo visto eso lo soluciona, pero el bug sigue existiendo para casos sin comillas dobles.

Saludos!








z3nth10n

Es que el sistema no lo admite sin comillas dobles...

PD:

Como puedes observar lleva comillas, y es más intuitivo cuando miras a:



Como puedes observar lleva también comillas... Aunque de la forma en la que está, deja un poco que desear...

Propongo como solución, que el-brujo añada una aclaración, para aquellos que vayan a rellenar el BBC de forma manual: "Hay que encomillar a los usuarios", o que edite el ejemplo y ponga:

Citar(múltiples destinatarios como "nombreusuario1", "nombreusuario2")

Es que si no, puede llevar a confusiones como la tuya...

Un saludo.




También se podría hacer un miniscript en Jquery o javascript que parsearse esa textbox, y caso de contener alguna letra, y ninguna comilla y/o punto y coma, pues que te saltase el error:

Citar¡Atención!, la forma de parsear su BBC es incorrecta, por favor, revise que no se haya ninguna comilla y/o punto y coma...

Tacho lo del y/o punto y coma, porque habrá quien lo use solo para enviárselo a un usuario... :rolleyes:

Interesados hablad por Discord.

Eleкtro

vamos a ver Ikillnukes, que esta vez creo que eres tu quien se ha exo la pixa un lio xD, el problema no es con el destinatario, pues ahí es muy óbvio que hay que delmitar corréctamente encerrando las cadenas entre comillas dobles,
el problema surge en el mensaje del cuerpo!. ¿no has leido la parte donde hablo sobre el filtro de palabras prohibidas?, pues por algo es '¬¬ ...

Saludos!








z3nth10n

A ver te digo lo que yo pienso...

El parseador como tu lo llamas, está escrito de tal forma que si le pones las comillas, lo identifica, pero si no, bueno, pues sí puede que haya algún bug, podría ponerse un alguna solución, como que volviese para atrás y no soltase ningún error.

En fin, es un bug, porque bueno el sistema no está preparado, o no han hecho nada, para evitar este error...

Un saludo.

Interesados hablad por Discord.

#!drvy

Por casualidad, te pasa en todos los navegadores o solo en Firefox ? Creo que es un problema del mod_security de Apache.

Saludos

Eleкtro

Cita de: @drvy en  9 Diciembre 2013, 16:24 PMte pasa en todos los navegadores o solo en Firefox ?

Hola

Ocurre lo mismo con Firefox, Chrome y Tor

saludos!








el-brujo

Normalmente cuando aparece un error del tipo:

You don't have permission to access / XX on this server.

Es un response code por defecto que tiene puesto el mod_security del Apache en el servidor, que es devolver un error 403.

En este caso imagino que al poner un ; se piensa que es una inyección SQL xD

Eleкtro

Cita de: el-brujo en 11 Diciembre 2013, 19:40 PM
En este caso imagino que al poner un ; se piensa que es una inyección SQL xD

En realidad para que se produzca el error lo que hay que poner es una coma, si pones un punto y coma funciona bien (como lo escribí en el comentario principal).

Bueno pues eso, ahi lo dejo.
un saludo!