Esteban: Hay un ataque bastante comun que consiste en incluir codigo SQL en campos de entrada, para realizar daño en la aplicacion.
En el caso que cuenta el chiste, se supone que tiene un formulario de ingreso de datos, donde pide el nombre del estudiante.
Lo habitual, es ingresar "Enrique" y con eso funciona todo bien.. La aplicacion concatena el dato ingresado con una sentencia SQL y la ejecuta en la base de datos.
Ahora, si en vez de "Enrique", se ingresa "Enrique';DROP TABLE student;--", lo que puede pasar, si la aplicacion no esta bien diseñada, es que se agrege el valor "Enrique" y luego se ejecute la sentencia que borra la tabla students y pone como comentario el resto de la linea..
Con este sencillo comando, se puede lograr borrar todos los datos de dicha tabla. Por eso hay que tener mucho cuidado y no permitir en nuestras aplicacion el ataque de "SQL Injection". Podes ver mas informacion en http://es.wikipedia.org/wiki/Inyección_SQL
Esta teoría no es mia, sino que se la escuché por primera vez a Andrés Acosta. Varias generaciones de niños en Montevideo, crecieron viendo un programa de televisión llamado Cacho Bochinche, donde había un juego donde habia que patear penales a un arco con un golero de goma. La falla fundamental del mismo, es que en vez de premiar a quienes metian goles, se premiaba a quienes logran pegarle un pelotazo al golero y tirarlo al suelo. O sea, quien pateaba en forma mas burda y fuerte, era el ganador. Para complicar mas la situación, muchas veces cuando un niño no lograba voltear al muñeco, el animador del programa (el inefable Cacho de la Cruz que hacía de juez), le pegaba o empujaba al golero para tirarlo al suelo y de forma de dejar contento al niño que estaba haciendo pucheros. Por lo tanto se promueven varios valores, que han logrado calar muy profundo en las generaciones de niños telespectadores: a) Es bueno patear fuerte y al medio b) Tirar a colocar es de maricones c) El golero es ...
La idea de este post es comentar algunos de los problemas que he encontrado migrando desde Genexus 9.0 a GeneXus X. Tiene también algunos tips que pueden hacer mas fácil la vida (al menos la mia). Los pasos que hice fueron: 1) Copiar el directorio de la KB para guardar en caso que pase algo. Borrar de la KB el directorio de los modelos (los DATA00x). Esto es para asegurarme que no me queda ningun fuente viejo, ni ninguna dll, jar, etc de la versión anterior. 2) Entrar con GeneXus 9.0 a la KB y borrar todos los modelos que no se utilicen. Esto se hace con File/Delete Model estando en diseño. Conviene borrar el modelo de Backup (si existe) pues acelera la conversión. 3) Renombrar el domino Boolean si existiera y ponerle Boolean90. En GeneXus X Boolean es un tipo de datos nativos y si existe un domino Boolean (como el que usa el Pattern WorkWith, se arma lio). 4) Borrar todos los objetos que no se utilicen y los que sean WIN. Este paso no es indispensable, pero es muy saludable. Puede a...
Tenía una aplicación GeneXus funcionando correctamente con el server Kestrel. Cuando cambié la propiedad para ejecutar con el IIS (Internet Information Server) me empezó a dar el error Server Error in Application "application name" HTTP Error 500.19 – Internal Server Error HRESULT: 0x8007000d Description of HRESULT The requested page cannot be accessed because the related configuration data for the page is invalid. Este error me habia pasado antes en aplicaciones .NET Framework (con el generador viejo) y siempre eran por temas de web.config mal formados o por problemas en la configuración del IIS (por ejemplo, quedaba mal el ApplicationHost.config ). En este caso, no parecía ser este el problema y necesité ayuda para encontrarlo. No deja pistas en el Event Viewer ni en los logs mas típicos. Busque por el lado de los componentes de Windows del IIS y no encontré nada. Me faltaba instalar ASP.NET Core Hosting Bundle que se baja y se instala en forma independiente del IIS. Lu...
no entiendo!!!
ResponderBorrarSaludos
Esteban:
ResponderBorrarHay un ataque bastante comun que consiste en incluir codigo SQL en campos de entrada, para realizar daño en la aplicacion.
En el caso que cuenta el chiste, se supone que tiene un formulario de ingreso de datos, donde pide el nombre del estudiante.
Lo habitual, es ingresar "Enrique" y con eso funciona todo bien.. La aplicacion concatena el dato ingresado con una sentencia SQL y la ejecuta en la base de datos.
Ahora, si en vez de "Enrique", se ingresa "Enrique';DROP TABLE student;--", lo que puede pasar, si la aplicacion no esta bien diseñada, es que se agrege el valor "Enrique" y luego se ejecute la sentencia que borra la tabla students y pone como comentario el resto de la linea..
Con este sencillo comando, se puede lograr borrar todos los datos de dicha tabla. Por eso hay que tener mucho cuidado y no permitir en nuestras aplicacion el ataque de "SQL Injection". Podes ver mas informacion en http://es.wikipedia.org/wiki/Inyección_SQL
Gracias por el comentario..