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

se puede insertar y eliminar registros con una sola consulta mysql?

Estas en el tema de se puede insertar y eliminar registros con una sola consulta mysql? en el foro de Mysql en Foros del Web. hola, ando protegiendo una de mis webs, devido a un ataque sql_injection que me icieron, y me gustaria saber si esto es posible y como ...
  #1 (permalink)  
Antiguo 30/05/2011, 02:43
 
Fecha de Ingreso: abril-2009
Mensajes: 162
Antigüedad: 15 años
Puntos: 6
Pregunta se puede insertar y eliminar registros con una sola consulta mysql?

hola, ando protegiendo una de mis webs, devido a un ataque sql_injection que me icieron, y me gustaria saber si esto es posible y como lo realizan los maxters.

si es posible podrian decirme como se realiza? asi podre protejerme de los terroristas
__________________
Manual de Javascript
  #2 (permalink)  
Antiguo 30/05/2011, 05:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: se puede insertar y eliminar registros con una sola consulta mysql?

La respuesta es NO. Una misma sentencia no puede hacer inserción y eliminación, entre otras cosas porque pueden estar realizando operaciones mutuamente excluyentes.
Si tu preocupación es el sql-injection mi recomendación es que toda operación con la base la hagas por medio de stored procedures, y no con sentencias comunes, ya que las mismas son invulnerables al sql-injection.
Para que te quede claro por qué son invulnerables:
1) Un usuario puede crearse con sólo privilegios de ejecución de SP, lo que impide que las invocaciones a los mismos puedan usarse para acceder a tablas.
2) Los SP sólo reciben parámetros dentro de la llamada. Los parámetros sólo pueden ser valores esperados, cualquier otro valor es tomado como error de SP.
3) No puedes agregar dinámicamente parámetros a un SP, ni enviarle menos de los que debes.
4) Si el parámetro esperado es un VARCHAR no puede usarse para sql-injection porque para dar resultado deberían usarse sentencias preparadas en el SP, cosa que no sería el uso del VARCHAR.
5) Aún si las usas con una sentencia preparada, la inclusión de sql-injection en ese caso generaría un error de sintaxis en la creación de la sentencia preparada, y dentro de un SP todo error genera una cancelación completa del procedimiento.

No te preocupes de los terroristas, ellos tienen víctimas más importantes, y tu tienes adversarios más graves: los que se dedican a meterte bobadas en los formularios, nada más que "para ver qué pasa"...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 30/05/2011 a las 05:49
  #3 (permalink)  
Antiguo 30/05/2011, 06:13
 
Fecha de Ingreso: abril-2009
Mensajes: 162
Antigüedad: 15 años
Puntos: 6
Pregunta Respuesta: se puede insertar y eliminar registros con una sola consulta mysql?

me dejastes loco con eso de stored procedures que chingados es eso!!! yo a duras penas manejo los super simples, podrias darme algun manual basico para entender todo lo que dijistes?

otra cosa, usar eso que tu le llamas procedures incrementa drasticamente los recursos de CPU?
__________________
Manual de Javascript

Etiquetas: registros
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 07:46.