Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/03/2010, 00:22
nshadow
 
Fecha de Ingreso: marzo-2010
Mensajes: 2
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Duda seguridad en insercion datos mysql

Caro amigo,
esta es la pregunta de 1 Millon
Entonces, tu inquietud es mas que licita, las funciones que usas palian en parte el riesgo, pero no te da una seguridad realemnte suficiente. Me explico mejor, lo que se esta haciendo con estas funciones es sanizar la entrada, o sea escapar caracters potencialmente peligrosos. Ahora lo que habria que hacer es efectuar una validacion de entrada y salida. La validacion es:
1: canonicalizacion: es convertir un entrada en un formado unico, utf-8 por ejemplo
2: sanizacion: es escapar los caracteres potencialmente peligroso y que tienes que permitir, puedes hacerlo con las funciones que propones. Obviamente si no tienes que permitir estos caracteres no necesitas escaparlos ya que en la siguiente fase los detectaria y no acpetas la entrada. Por ejemplo, la comilla en un email no hay que permitirla, pero en un apellido puede que se tenga que permitir, entonces si hay que permitirla se escapa
3: validacion datos entrada y salida: es verificar que lo que te llega es lo que te espera. o sea hay que verificar espacio de caracteres o rango de numeros, formado, tamaño,...Por ejemplo si esperas un identificador (un numero) tienes que verificar que este en el rango de interos.si esperas un email tienes que verificar que es formado sea email , la longitud maxima que permites para este campo y el espacio de caracteres (por ejemplo de a-z mas del 0-9 y algun caracter de puntuacion); esto puedes hacerlo con expresiones regulares.
tambien podrias comprobar que no te estan colando mas direcciones separadas con punto y coma o cosas del estilo.

Hacer una correcta validacion es algo costoso pero es lo que hay que hacer.
Si luego quieres comprobar si es aun posible efectuar ataques de sql injection o XSS, puedes usar herramientas de test de intrusion. hay desde free como xss me o similares a de pago como la de watchfire (que es algo cara). Si quieres monitorizar constantemente tu portal para dormir tranquilo puedes usar el servicio de Security Guardian:
[URL="http://security-guardian.com"]http://security-guardian.com[/URL],
yo lo tengo y es fenomenal. Es gratuito y lo que hacen es testear periodicamente tu WEB y puedes ver los resultados y solucciones para las vulnerabilidades que detecta desde la consola de administracion que dan (es muy completa y e intuitiva). Ademas te certifican el portal y gracias al sello que te day y que pones en tu web logras un aumento de confianza de tu cliente o visitante y esto se traduce en un aumento en las ventas o altas en el caso que no vendas.
Por cierto la calidad de los escaneos en brutal, nada a que ver con las demas solucciones en el mercado!!!
Espero haberte podido ayudar un poco.