Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

303
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda