Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/02/2008, 07:19
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Seguridad, Cross Site Scripting, SQLInjection. Funciones para ello. Me ayudáis?

mysql_real_escape_string()

te va a eliminar cualquier caracter "peligroso" para la consulta. Usándolo te evitás problemas de inyección SQL, ya que aunque intenten engañar a tu programa pasándole una cadena "maligna", esta función escapará ciertos caracteres (en particular comillas) y eliminará este riesgo.
Es una "mejora" de addslashes(), se supone que usar una función específica del motor de base de datos es más eficiente.

nl2br solo te puede ayudar en casos de, por ejemplo, inyección de cabeceras de correo electrónico, no te salvará de un ataque de inyección SQL, ya que el salto de línea no tiene un significado para el servidor SQL y por tanto difícilmente alguien lo use en su ataque. Aunque sí en caso de que sea usado, filtrar con nl2br provocará un error en la consulta.

htmlentities no está pensada para la seguridad, y no será más efectiva que mysql_real_escape_string

Por último, si estás recibiendo datos para enviar por correo, deberías directamente eliminar los caracteres de salto de línea (\n y \r) de los campos que no deberían tenerlos, ya que la conversión a <br> no necesariamente te va a salvar de la inyección de cabeceras.


Sobre Cross-site scripting no puedo hablar mucho, nunca investigué lo suficiente.


Saludos.