Club Delphi  
    FTP   CCD     Enlaces   Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Desplegado
  #1  
Antiguo 21-04-2012
Avatar de connor
connor connor is offline
Miembro
 
Registrado: ene 2008
Posts: 156
connor Va por buen camino
Inyeccion SQL

Buenas,

Tengo un sistema al que se le borran los registros sin que nadie haga nada, por ej. a un cliente se le desaparecieron dos dias de registro de datos y segun el nadie borro esos registros, he averiguado algo y la net y dice que puede ser una inyeccion sql tengo mi usuario con password al root tambien le he puesto password, y aun asi, los registros a veces desaparecen solos, que puedo hacer.



Saludos
Responder Con Cita
  #2  
Antiguo 21-04-2012
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: Honduras-Altlantida-la Ceiba
Posts: 587
look Va por buen camino
probablemente tu problema este en las transacciones. en una ocasion encontre ese comportamiento en el sistema de un amigo y el problema venia porque no tenia bien establecida las transacciones, el decia que se le perdia informacion de dias y el problema era que en todo el dia la aplicacion no hacia el commit para cofirmar los datos , este comportamiento era esporadico ya que con cerrar la aplicacion se hacia el respectivo commit al perder la conexion pero habia ocaciones en las que habia un fallo de energia y la computadora se apagaba etonces se perdia la info.

Saludos!
__________________
all your base are belong to us
Responder Con Cita
  #3  
Antiguo 21-04-2012
Avatar de connor
connor connor is offline
Miembro
 
Registrado: ene 2008
Posts: 156
connor Va por buen camino
look gracias por responder, he hecho pruebas de meter algunos registros al sistema y luego he apagado la pc, reinicie y los datos estaban ahi, no se perdieron inlcluso metia datos y con ctrl+alt+del sacaba mi programa de memoria repentinamente y los datos no se perdian, la verdad no se quisas tengas razon, pero a cada registro ingresado le hago un post estoy usando componentes zeos para usar las tablas
Responder Con Cita
  #4  
Antiguo 21-04-2012
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: Honduras-Altlantida-la Ceiba
Posts: 587
look Va por buen camino
Cita:
Empezado por connor Ver Mensaje
look gracias por responder, he hecho pruebas de meter algunos registros al sistema y luego he apagado la pc, reinicie y los datos estaban ahi, no se perdieron inlcluso metia datos y con ctrl+alt+del sacaba mi programa de memoria repentinamente y los datos no se perdian, la verdad no se quisas tengas razon, pero a cada registro ingresado le hago un post estoy usando componentes zeos para usar las tablas
te recomiendo que metas todos los cambios que haces en la base de datos con transacciones es decir un starttransaction con su respectivo commit, despues de hacer esto prueba el comportamiento del programa para ver si con esto se soluciona
__________________
all your base are belong to us
Responder Con Cita
  #5  
Antiguo 22-04-2012
Avatar de connor
connor connor is offline
Miembro
 
Registrado: ene 2008
Posts: 156
connor Va por buen camino
Holas de nuevo

El StartTransaction y el Commit iria en el evento Query.AfterPost, asi tendria que ser?.

Y poner en el componente ZConecction.AutoCommit := True, no seria lo mismo??


Saludos
Responder Con Cita
  #6  
Antiguo 22-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 7.900
ecfisa Es un diamante en brutoecfisa Es un diamante en brutoecfisa Es un diamante en bruto
Hola connor.

¿ Hiciste la prueba de poner el autocommit en falso y realizar el Commit/CommitRetaining manualmente como te sugirió el amigo look ?

No utilizo Zeos pero aquí , mencionan un problema similar que se solucionó de ese modo.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 23-04-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.842
AzidRain Va por buen camino
Si las tablas no son InnoDb no tiene ningún efecto usar transacciones. MySQL por default crea todas las tablas con el motor MyISAM que no es transaccional. Por otro lado si nunca abres una transaccion, cualquier cambio se graba de inmediato tan pronto hagas un POST.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #8  
Antiguo 23-04-2012
Avatar de connor
connor connor is offline
Miembro
 
Registrado: ene 2008
Posts: 156
connor Va por buen camino
Buenas,

Es verdad no habro ninguna transaccion solo hago POST pero un dia un cliente (usuario) me dijo que digito dos dias martes y miercoles, viene el viernes enciende la pc y los dias en los que registro algunas ventas, osea martes y miercoles no estaban habian desaparecido todos las ventas de esos dias, aclaro cada vez que el operador registra una nueva venta el programa hace POST, incluso cuando se salta de campo en campo el programa hace POST, lo que no me queda claro es como desaparecen los registros sion que nadie los borre?? yo he llegado a una conclusion que mi porgrama esta siendo saboteado por terceros, por medio de inyecciones sql porque he hecho pruebas ingresando registros mas de 20 y apagando la pc reseteando la pc y no se borran por nada de nada es raro esto, ojala de con la solucion lo de la ayuda de las transacciones agradesco mucho por responder pero creo que el problema esta en que sabotean mi programa, algunas personas que quisas deseen desprestigiarme y vender el suyo propio a la empresa que yo le vendi mi porgrama

Ah me olvidaba si uso el motor inmodb

Saludos, gracias por responder.

Última edición por connor fecha: 23-04-2012 a las 19:14:30.
Responder Con Cita
  #9  
Antiguo 23-04-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: Planeta Agua
Posts: 22.703
Casimiro Notevi Va camino a la fama
¿Y cómo hacen esa inyección sql?, ¿no será más fácil borrar directamente los datos?
Yo me quedaría un día entero junto al cliente y lo vería de trabajar, a ver si hace algo raro, no sé, apagar el ordenador sin salir del programa, por ejemplo.
__________________
/* Saludos
*/
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código

$ sudo mv system > /dev/null

Responder Con Cita
  #10  
Antiguo 29-04-2012
Avatar de connor
connor connor is offline
Miembro
 
Registrado: ene 2008
Posts: 156
connor Va por buen camino
Si casimiro es verdad quedarse mas rato con el digitador, pero resulta que para eso tendria que viajar por lo menos 1000 kilometros desde mi ciudad y no voy a estar viajando cada rato que un pendejo se le ocurra borrar los registros, otra cosa creo que tienes razon los registros los borran directamente porque pienso que seria imposible que se borren solos, ahora resulta que mi cliente se compro otro programa y el que saboteo mi programa salio con su gusto de joderme.


Saludos
Responder Con Cita
  #11  
Antiguo 30-04-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 18.858
roman Va camino a la fama
MySQL puede llevar un registor de todas las consultas que modifican algo en la base de datos (INSERT, DELETE, UPDATE, etc.) Si está activado, deberás encontrar unos DELETE que no deberpian de estar y de ahí partir para ver si alguine está haciendo cosas raras.

// Saludos
__________________

Menos reyes y más elefantes
http://clubdelphi.com/correo_contacto_clubdelphi.png
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ataques de inyección de sql hogol SQL 5 17-10-2011 23:00:37
Inyección de API: ejemplo de CHackAll alquimista API de Windows 7 03-01-2009 01:56:41
Formas de inyección de procesos aeff API de Windows 8 27-10-2007 19:25:25
Inyeccion de sql richy08 PHP 0 19-10-2007 01:08:41
evitar inyeccion de html reevil PHP 2 21-12-2006 03:26:08


La franja horaria es GMT +2. Ahora son las 23:24:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi