Por qué se autocompletan las etiquetas <p> ?

Iniciado por @XSStringManolo, 29 Diciembre 2019, 14:16 PM

0 Miembros y 2 Visitantes están viendo este tema.

@XSStringManolo

Estaba haciendo una función para añadir la etiqueta P de forma sencilla y me autocompleta las etiquetas. Alguna idea?
El código no está optimizado, primero quiero hacerlo todo.

Funcionalidad deseada? Generar este código: <p> <input></input>

Problema? Se genera <p> </p> <input></input> (Se añade automáticamente la etiqueta de cierre)



Código (javascript) [Seleccionar]
<html>
<body>
<div id="inputs"></div>


<script>
function añadirEtiqueta(etiqueta, idPadre)
{
document.getElementById(idPadre).innerHTML += etiqueta;
}

function p(IDpadre, texto)
{
   if (texto === undefined)
       texto = "";
añadirEtiqueta("<p>" + texto, IDpadre);
}

function finp(IDpadre, texto)
{
  if (texto === undefined)
       texto = "";
añadirEtiqueta(texto + "</p>", IDpadre);
}


function crearElemento(etiqueta, IDpadre, tipo, valor, id, nombre, fuente, clase, pista, enClick, dentro)
{

if(!etiqueta)
throw new SyntaxError("El parámetro etiqueta está sin definir.");

if(!IDpadre)
throw new SyntaxError("El parámetro padre está sin definir.");

var elemento = document.createElement(etiqueta); elemento.type = tipo;
elemento.value = valor;
elemento.id = id;
elemento.name = nombre;
elemento.src = fuente;
elemento.class = clase;
elemento.placeholder = pista;
elemento.onclick = enClick;
elemento.innerHTML = dentro;

document.getElementById(IDpadre).appendChild(elemento);
}
/* 1etiqueta, 2IDpadre, 3tipo, 4valor, 5id, 6nombre, 7fuente, 8clase, 9pista, 10enClick, 11dentro */

var i = 1;
var d1 = "inputs";

p(d1, "DOMINIOS: ");
crearElemento("input", d1, "text", "", "", "Dominio"+i, "", "", "https://example.com/" , "", "");
finp(d1);

</script>

</body>
</html>

AlbertoBSD

Me pasaba lo mismo, tienes que encontrar la forma de generar todo tu HTML en un string en memoria y solo cuando este completo colgarlo del parent Element.

Saludos
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

@XSStringManolo

Cita de: AlbertoBSD en 29 Diciembre 2019, 17:53 PM
Me pasaba lo mismo, tienes que encontrar la forma de generar todo tu HTML en un string en memoria y solo cuando este completo colgarlo del parent Element.

Saludos
Buena idea gracias!!

AlbertoBSD

Cita de: @?0!,5^34 en 29 Diciembre 2019, 18:19 PM
Buena idea gracias!!

Ahora el por que se cierran solas, es cosa del tipo del documento y del navegador, los navegadores hacen cosas muy raras como ocultar código PHP, algunas de ellas se pueden aprovechar vulnerar cosas que normalmente no serian  vulnerables.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

@XSStringManolo

Cita de: AlbertoBSD en 29 Diciembre 2019, 19:06 PM
Ahora el por que se cierran solas, es cosa del tipo del documento y del navegador, los navegadores hacen cosas muy raras como ocultar código PHP, algunas de ellas se pueden aprovechar vulnerar cosas que normalmente no serian  vulnerables.

Saludos!
Ocultar código PHP? LOL Me paso una vez de que tuve errores las codificación de mi editor, se interpreto todo menos el PHP y se veia en texto plano en el navegador.

No deberían ocultar el PHP en cliente '--. El generador de XSS que tengo en github no funcionaría porque pongo código PHP en un div editable para que lo copies y puedas pegarlo en tu editor de texto.

AlbertoBSD

Opino lo mismo, no deberia de ocultar el código php que mande el servidor. Por eso siempre hay que mirar el source para ver si no se dejo algo el programador.

Ejemplo, por lo menos en chrome, firefox, Opera no muestra el php que va en la página.

https://albertobsd.dev/hide


Cita de: @?0!,5^34 en 29 Diciembre 2019, 19:34 PM
El generador de XSS que tengo en github no funcionaría porque pongo código PHP en un div editable para que lo copies y puedas pegarlo en tu editor de texto.

Creo que tendrias que mandarlo mediante htmlentities y al ponerlo en el div, se mostrará como debe de ser.

Saludos!
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

@XSStringManolo

Cita de: AlbertoBSD en 29 Diciembre 2019, 20:27 PM
Opino lo mismo, no deberia de ocultar el código php que mande el servidor. Por eso siempre hay que mirar el source para ver si no se dejo algo el programador.

Ejemplo, por lo menos en chrome, firefox, Opera no muestra el php que va en la página.

https://albertobsd.dev/hide


Creo que tendrias que mandarlo mediante htmlentities y al ponerlo en el div, se mostrará como debe de ser.

Saludos!
Al procesar el navegador añade comentarios al PHP. Wtf. Tiene que ser algo de tu configuración. Nunca antes vi esto y ando todos los días con PHP y JS.

En el momento no pensé lo de las entities o append a un text node.