Foros del Web » Programando para Internet » PHP »

Dudas con strip_tags, htmlentities y htmlspecialchars.

Estas en el tema de Dudas con strip_tags, htmlentities y htmlspecialchars. en el foro de PHP en Foros del Web. Buenas. Recien estoy empezando con el tema de darle seguridad al sitio y hay cosas q todavia me cuestan. Empece con el tema de xss, ...
  #1 (permalink)  
Antiguo 05/05/2010, 00:17
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 9 meses
Puntos: 1
Dudas con strip_tags, htmlentities y htmlspecialchars.

Buenas.
Recien estoy empezando con el tema de darle seguridad al sitio y hay cosas q todavia me cuestan.
Empece con el tema de xss, filtrando las variables q recogen los datos de areas de texto (comentarios) y bueno, al ser novato en este tema, se generan muchas confusiones. Primero porq hay mucho material dando vuelta y segundo porq entro a un sitio donde aconsejan usar un metodo, entro a otro y aconsejan otro y eso a un novato lo enloquece.

Entonces lo q en la mayoria se repite como metodo, son las siguientes funciones:


-strip_tags(): para eliminar toda etiqueta html.

-htmlspecialchars(): q a mi entender se usa para convertir caracteres que se usan para trabajar con HTML.

-htmlentities(): q a mi entender "traduce" aquellos caracteres q tengan un equivalente a HTML.

Entonces se genera la gran pregunta: cual de todas esas funciones usar?

-probe con strip_tags y funciona re bien, pero esta funcion me afectaria si yo quiero usar bbcode?

-con htmlentities tambien probe, lo q pasa q me devuelve exactamente lo q se registra en la bd, si yo pongo <script>alert("hola")</script> o <h1>hola</h1> aparece tal cual y queda desagradable esteticamente.

Bueno, les agradeceria q me despejen esas dudas y asi poder continuar.

Saludos.
  #2 (permalink)  
Antiguo 05/05/2010, 02:21
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Dudas con strip_tags, htmlentities y htmlspecialchars.

Strip_tags la puedes usar si quieres que ningun código HTML pueda estar presente en esos comentarios que tu dices, en otras ocasiones si queremos que haya html, para eso se usa htmlentities, ya que de esta forma el html quedará visible pero no actuara como código si pones <script></script>.

htmlspecialchars y htmlentities hacen lo mismo, pero htmlentities traduce más cosas que htmlspecialchars.

Otra cosa que se te ha olvidado es el uso de addslashes y stripslashes para evitar SQL inyection, lo que hace addslashes es añadir la barra de escape a las comillas, evitando así SQL Inyection, te recomendaría que leyeses algo sobre SQL inyection ya que también esta muy extendido.

Un saludo
  #3 (permalink)  
Antiguo 05/05/2010, 12:28
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Dudas con strip_tags, htmlentities y htmlspecialchars.

Buenas, primero q nada gracias.

-con repecto a htmlentities: se puede evitar q salgan las etiquetas html?, como dije anteriormente, si alguien quiere molestar poniendo <h1>hola</h1>por ejemplo, se puede hacer q solamente salga el hola?

-con respecto a addslashes y a mysql_real_escape_string: todavia estoy leyendo pero primero quiero terminar de entender como trabaja lo anterior para evitar ataques xss.
  #4 (permalink)  
Antiguo 05/05/2010, 12:31
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años, 7 meses
Puntos: 40
Respuesta: Dudas con strip_tags, htmlentities y htmlspecialchars.

Lo que quieres hacer se hace con strip_tags, y si después hay alguna etiqueta que quieres permitir solo la tienes que indicar en su segundo parámetro.


Un saludo
  #5 (permalink)  
Antiguo 05/05/2010, 12:55
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Dudas con strip_tags, htmlentities y htmlspecialchars.

Ok, gracias.

Etiquetas: htmlentities, htmlspecialchars, seguridad, strip_tags, xss
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.
Tema Cerrado

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 11:42.