Cita de: Xhushito en 1 Agosto 2011, 23:45 PMel atacante quizás no conozca la estructura de mi BD, pero debe bastar conectarse, ejecutar comandillos y sacar datos o hacer maldades, ¿existe este riesgo?.
Ni siquiera se necesitaria eso, hace unos meses le hice ingenieria inversa a una aplicacion de escritorio de una empresa dedicada a la Ingenieria de Software, la cual fue programada en vb 6 y trabajaba con mysql en un hosting de pago (te mostraria el enlace al tema, pero los autores del software pidieron al moderador de la sección borrar dicho tema hasta mejorar su seguridad), luego de unos minutos pude obtener acceso al hosting con todos los permisos, accedi a todos los datos incluyendo las contraseñas de los usuarios root en mysql.
De ahi para automatizar la exploración hice un pequeño software en C++ con QT:
http://foro.elhacker.net/programacion_cc/mysql_browser_c_y_qt-t321390.0.html
Las imágenes no estan disponibles, culpa del sitio donde las subi. Si no sabes compilarlo, deje una descarga a un ejecutable para windows y otra con el proyecto + ejecutable para linux, puedes probarlo en un hosting gratuito solo para ver que sencillo que es navegar por las bases de datos.
Ahora lo uso con frecuencia en slackware para explorar BD's y con las mejoras que le hice este tiempo puedo testear inyecciones sql automaticamente.
De todo eso lo que podria recomendar a grandes rasgos es que si utilizas en una BD local lo hagas con una aplicación de escritorio, si lo haces via web y quieres utilizar una aplicación de escritorio las contraseñas deberan estar en la BD remota y el usuario debe escribirlas cada vez que ingresa a la aplicación, debes tener un buen manejo de los permisos de usuario, procedimientos almacenados y algunas tablas de apoyo, ademas puedes combinar la aplicación con funciones en php para hacerlo similar a los web services de manera sencilla.
Otra forma seria hacerlo directamente en php o en asp.net, tener la aplicación en tu hosting (eso para no dar el codigo fuente a tus clientes) y segun el usuario conectado direccionar a la BD del hosting de cada cliente, algo como rentarles tu aplicación y que sus datos vayan guardandose en la BD del hosting de cada cliente (ahi seria bueno un cifrado para que solo tu aplicación pueda leer dichos datos).
Bueno ya no me extiendo más.
Saluos.