Ir al contenido principal

SQL Inyección con PHP. PARTE I

Hoy estaba testeando una aplicación que estoy desarrollando; ya saben, la típica que la interfaz esta hecha para todo menos para que el usuario de click en donde nunca jamas debe de dar click simplemente por que no es obvio no es razonable no es intuitivo, pero el usuario hace el click y truena el sistema, la verdad esto es molesto pero muy necesario hacer este tipo de pruebas para que cuando liberes tu aplicacion tenga lo menos posible de errores o caídas,.

Este fin de semana platique con mi cuñada y le mostré mi aplicación le pedi de favor que interactuara con ella y al cabo de tiempo me dice "que pasa si en lugar de guardar todos dejo este sin seleccionar" increíblemente no había pensado en eso, estaba tan preocupado por otros aspectos que no había colocado una validación en los campos de un formulario; seguido de esto me fui a mi casa y estuve pensando que así como deje de hacer esa validacion sencilla de campos deberían de existir mas bugs en mi aplicacion, de esta forma supe que necesitaba poner atención.






Navegando con el buen amigo Google y buscando vulnerabilidades de PHP+Mysql, me encontré con la Inyeccion SQL, pero ¿que es eso?, según Wikipedia:
Inyección SQL es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar consultas a una base de datos.
En pocas palabras, la inyeccion SQL es como su nombre lo dice una inyección de código sql en una consulta previamente definida, casi siempre con el objeto de tomar información de una base de datos llegando a conseguir un user y un password para poder manipular totalmente una base de datos, para los que entienden un poco de esto habrán pensado que es realmente delicado, si nuestra aplicacion maneja información sensible para la empresa en donde se esta desarrollando es sumamente importante dotar de mayor seguridad a nuestras aplicaciones, tratare de explicar como entiendo lo que es la inyección sql a continuación un ejemplo; Supongamos que tenemos una url así:

http://mipagina.com/viewrentas.php?iden=2

Ahora bien necesitamos observar bien la url, en ella nos muestra información importante de como podría estar haciendo el programador la consulta a la base de datos llegando al siguiente query:

$sql = 'SELECT * FROM clientes
WHERE personas.id = '.$_GET['iden'];


La query anterior selecciona todos los campos de la tabla clientes donde id de los clientes sea igual a 2(esto segun nuestra url). La consulta anterior es claramente vulnerable a inyecciones SQL, ¿Por que?, eso lo tratare de explicar en mi próxima entrada.


SQL Inyección con PHP. PARTE II

Comentarios

Entradas populares de este blog

Python: Insertar campos desde Mysql

Antes ya he hecho una entrada sobre Conexion entre Mysql-Python pues bien ahora veremos como insertar campos a una tabla desde consola, básicamente se crea el arhivo de la misma forma que en el ejemplo anterior, aquí anexo el código:

import MySQLdb
code =raw_input("Id:")
name=raw_input("Nombre:")
db=MySQLdb.connect(host='localhost',user='root',passwd='root',db='usuariospy')
cursor=db.cursor()
sql='INSERT INTO usuarios VALUES("%s","%s")'%(code,name)
cursor.execute(sql)

En el anterior código se ve claramente como primero importamos la librería Mysql que nos ayuda con la conexion a la base de datos, seguido de esto pedimos dos datos y los almacenamos en variables para después abrir la conexion con la base e insertar los datos ingresados por el usuario; como pueden ver algo muy sencillo pero útil.
Espero les sirva puede ver como configurar y ejecutar su primer conexion entre python y msql en mi entrada de acá.


Puedes ve…

Como proteger mi blackberry

Blackberry Protect Sin más introducción a mi ya me han asaltado dos veces, y uno ya no está seguro en ningún lado, las veces anteriores como hubiera deseado haberle quitado la tarjeta de memoria a mi celular para que no vieran mis fotos y demás información, en fin. Ahora con los smart phone uno guarda cada vez más información y más importante. Pues la solución para este tipo de problemas es Blackberry Protect, el cual puedes descargar desde el siguiente link. http://us.blackberry.com/apps-software/protect/
Con blackberry protect podrás:
* Hacer respaldos. * Subir el volume de tu blackberry cuando este perdido, aunque lo tengas en silencio. * Bloquearlo. * Saber su ubicación en caso de robo. * Entre otras aplicaciones y todo esto remotamente. * Por cierto se me olvidaba, podrás borrar toda la información remotamente si asi lo deseas. * No es que yo tenga ya delirio de persecución, pero con BB Protect, me siento más seguro en las calles. * Aunque comprarle un seguro a tu smart phone no está de má…

Python: Ejemplo como conectarse a mysql y realizar una consulta.

Ayer platicaba con Luis sobre lenguajes de programación y el me comentaba que estaba desarrollando una aplicación en python para un trabajo de su residencia (practicas) y me pareció interesante ver que era eso, que es python según wikipedia es: Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia y que favorezca un código legible...(mas).  Pues bien decidí ver como era la sintaxis de python al conectarse con mysql, primero mostrare que se necesita para programar en consola desde Linux Debian Squeeze, después crearemos una base de datos con una tabla de ejemplo que nos ayudara con el objetivo, seguido de la sintaxis del pequeño programa de conexion que realiza la consulta para después terminar con la compilacion y ejecución del mismo.
1.- Desde consola con permisos de super-usuario tecleamos lo siguiente: # apt-get install mysql-pythonLa cadena anterior es para instalarla libreria que nos ayuda a hacer el "puente" entre mysql…