Foros del Web » Programando para Internet » PHP »

escapar caracteres HTML

Estas en el tema de escapar caracteres HTML en el foro de PHP en Foros del Web. Hola, tengo un proyecto en PHP entre manos y una duda, que es preferible escapar los caracteres HTML antes de guardar la información en la ...
  #1 (permalink)  
Antiguo 16/03/2010, 11:53
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 10 años
Puntos: 5
escapar caracteres HTML

Hola,

tengo un proyecto en PHP entre manos y una duda, que es preferible escapar los caracteres HTML antes de guardar la información en la base de datos o escaparlos después de recogerlos de la base de datos.

Gracias.
  #2 (permalink)  
Antiguo 16/03/2010, 12:00
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 11 años, 2 meses
Puntos: 3
Respuesta: escapar caracteres HTML

a que te refieres con escapar???

transformar por ejemplo <span> a &ltspan&gt ???
porque para eso tienes la funcion htmlspecialchars que te hace justo eso :D
  #3 (permalink)  
Antiguo 16/03/2010, 12:07
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 10 años
Puntos: 5
Respuesta: escapar caracteres HTML

gracias por responder djrony,

no me refiero a una función en concreto, me refiero a si es mejor escapar los caracteres HTML antes o después de introducirlos en la base de datos,

es decir, tenemos un formulario en el que los usuarios introducen datos, esos datos se guardan en la base de datos, la pregunta es ¿cuándo es mejor escapar los caracteres HTML, antes de guardarlos en la base de datos o después cada vez que se muestren por panltalla?
  #4 (permalink)  
Antiguo 16/03/2010, 12:16
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 11 años, 2 meses
Puntos: 3
Respuesta: escapar caracteres HTML

Ok,
Entiendo ahora lo que me dices, primero decirte que yo por regla general siempre evito tener que permitir guardar caracteres html en base de datos, pero si en tu caso tienes que guardarlos lo que te diria por seguridad es lo siguiente

Usando striptags elimines aquellas tags html que no deseas permitir por ejemplo sis olo qiuieres permitir tags strong, h1, h2 ,etc.

Luego uses addslashes para escapar el texto en si. con esto seria suficiente.

En resumen guarda en la base de datos los caracteres html pero siempre antes pasandole addslashes para que no te de errores al grabar y luego al mostrar pues tienes que usar stripslashes para que se muestre correctamente.
  #5 (permalink)  
Antiguo 16/03/2010, 12:24
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 12 años, 1 mes
Puntos: 5
Respuesta: escapar caracteres HTML

mysql_real_escape_strings
  #6 (permalink)  
Antiguo 17/03/2010, 06:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 186
Antigüedad: 10 años
Puntos: 5
Respuesta: escapar caracteres HTML

Hola de nuevo,

Creo que no me he explicado bien. Conozco las funciones usadas para escapar caracteres HTML (como '<' o'>') mysql_real_escape_strings o htmlentities.

Lo que estoy preguntando es si es mejor usar estas funciones antes de introducir los datos en la base de datos y guardar los caracteres escapados, o por el contrario es recomendable usar estas funciones cuando necesites sacar información de la base de datos y mostrarla por pantalla (en la web).

Ejemplo:

intro dato -> escapo caracteres HTML -> guardo en la base de datos -> saco dato -> muestro dato.

o

intro dato -> guardo en la base de datos -> saco dato -> escapo caracteres HTML -> muestro dato.
  #7 (permalink)  
Antiguo 17/03/2010, 07:15
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 12 años, 1 mes
Puntos: 5
Respuesta: escapar caracteres HTML

Por el problema de MySQL Injection no es aconsejable ingresar datos sin escapar comillas a la BD.
En el caso de etiquetas HTML que puedas mostrar, debes tener cuidado tb, puede presentarse un ataque XSS, debería tb convertir los datos a sus entidades HTML antes de guardarlos. OJO tb deberías verificar que las etiquetas estén cerradas, etc etc

Etiquetas: caracteres, escapar, html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:38.