Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿Es aceptable usar htmlentities() antes de pasar datos a JavaScript?

Estoy recuperando algunos datos de una base de datos (todos usando declaraciones preparadas) en una matriz, luego envío esos datos como JSON

Luego proceso los datos con JavaScript y los muestro en la página web (como una lista).

¿Es aceptable ejecutar htmlentities($data, ENT_QUOTES) en los resultados de la base de datos mientras los agrego a la matriz antes de convertirlos a JSON y generarlos? ¿Tendré algún problema al hacerlo?

¿O debería hacer todo esto usando JavaScript? Por lo general, siempre usaría htmlentities() antes de enviar datos directamente a una página web, pero no estoy seguro de si está bien hacerlo cuando uso JSON y analizo los datos con JavaScript. Por lo que sé, tampoco hay una función similar en JS.

La base de datos tiene campos de texto y podría contener cualquier cosa (incluidas cosas que romperán una página web)

Editar: código de ejemplo (lado PHP)

 $DB_results = array('Test', '123', '<b>hello</b>', 'B&$B%'); echo json_encode($DB_results);

Código JS:

 var db_results = JSON.parse(this.responseText); // this is from an AJAX query var dbr_length = db_results.length; for (var i = 0; var i < dbr_length; i++) { var li = document.createElement('li'); li.appendChild(document.createTextNode(years[i])); document.getElementById('mylist').appendChild(li); }

¿Debería modificar el código PHP a lo siguiente (tenga en cuenta que se htmlentities() al agregar los datos a la matriz)

 $DB_results = array( htmlentities('Test', ENT_QUOTES), htmlentities('123', ENT_QUOTES), htmlentities('<b>hello</b>', ENT_QUOTES), htmlentities('B&$B%', ENT_QUOTES) ); echo json_encode($DB_results);
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Creo que usted mismo respondió la pregunta, pero si quiere más confianza, puede consultar los documentos de MDN para Document.createTextNode() :

Crea un nuevo nodo Text . Este método se puede utilizar para escapar de los caracteres HTML.

Y el código en su pregunta (ligeramente modificado para ejecutar sin ReferenceError s):

 document.body.appendChild(document.createElement('ul')).id = 'mylist'; const json = `["Test","123","<b>hello</b>","B&$B%"]`; const dbResults = JSON.parse(json); for (const str of dbResults) { const li = document.createElement('li'); li.appendChild(document.createTextNode(str)); document.getElementById('mylist').appendChild(li); }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda