Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Duda seguridad en insercion datos mysql

Estas en el tema de Duda seguridad en insercion datos mysql en el foro de Mysql en Foros del Web. Hola amigos, una duda en el tema seguridad. Desde hace un tiempo estoy usando mysql_real_escape_string para los datos que vienen desde formularios llenados por usuarios. ...
  #1 (permalink)  
Antiguo 08/03/2010, 06:04
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 14 años, 6 meses
Puntos: 6
Duda seguridad en insercion datos mysql

Hola amigos, una duda en el tema seguridad.
Desde hace un tiempo estoy usando mysql_real_escape_string para los datos que vienen desde formularios llenados por usuarios.
Tambien utilizo htmlspecialchars, no se si con estas dos funciones estoy cubierto para insertar datos en una base mysql o necesitaria hacer algo más.
Si me pueden orientar se los agradezco.
Saludos.
  #2 (permalink)  
Antiguo 08/03/2010, 12:44
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Duda seguridad en insercion datos mysql

Como seguridad adicional te recomiendo que uses consultas parametrizadas en lugar de componer el SQL en la página y lanzarlo desde ahí.

Mejor créate un componente (clase) de acceso a datos que sea el que utilicen todas tus páginas para acceder a la base de datos y pásale los parámetros correspondientes para ejecutar cada una de las consultas.

Espero que se entienda bien y que te sirva de ayuda.

Más info en este mismo foro
__________________
Mi blog de temas más o menos técnicos

Y aquí el Jamón jamon de Jabugo
  #3 (permalink)  
Antiguo 27/03/2010, 00:22
 
Fecha de Ingreso: marzo-2010
Mensajes: 2
Antigüedad: 14 años
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.
  #4 (permalink)  
Antiguo 07/04/2010, 04:38
 
Fecha de Ingreso: abril-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Respuesta: Duda seguridad en insercion datos mysql

Hola nshadow,

Gracias por tu respuesta, ya que me ha servido tu solución de validación y encima me parece muy optimo aunque sea costasa.Tu recomendación de Security Guardian me ha ayudado mucho con los test de intrusión, me dii de alta. Como feedback puedo decirte que los escaneos que ha hecho Security Guardian me han detectado vulnerabilidades y gracias a los informes hemos podido reparar dichas vulnerabilidades.
Gracias por tu ayuda.

Etiquetas: seguridad
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 09:43.