1 2 3 4 5 6

Corrección de seguridad llega después de 8 años

The H Security 05-Dic-2012

La advertencia de enero de 2005 fue solo uno dentro de los cientos de noticias similares: una aplicación PHP no estaba validando los parámetros de una consulta de base de datos, lo que podría haber permitido a un atacante con una URL especial inyectar comandos en la base de datos. Lo extraño de este informe de error de PHP Gift Registry, es después de más de siete años, el desarrollador del programa ha decidido finalmente responder.

“Todas las consultas SQL fueron reemplazadas por las sentencias parametrizadas en la versión 2.0.0”,  es todo lo que está escrito en el mensaje del lunes 3 de diciembre de 2012, que al parecer proviene del desarrollador del programa.

Este tipo de vulnerabilidades de inyección SQL son muy generales y son el mayor problema de seguridad en las aplicaciones web. Las sentencias preparadas son la manera más fácil y eficiente de protegerse contra estas vulnerabilidades, el desarrollador elabora una consulta de base de datos, declarando que variable debe ser especificada más adelante, al igual que el nombre de usuario:

$stmt = $dbh->prepare("SELECT user FROM users WHERE (user=:user)");
$stmt->bindParam(':user', $user);

Cuando el programa es ejecutado, el desarrollador solo tiene que especificar el nombre de usuario y se puede enviar la consulta de base de datos elaborada:

$user = 'ju'; $stmt->execute();

La ventaja de este método es que, incluye, por alguna extraña razón, algo como:

ju';DROP TABLE users; --

Termina en la variable $user, se trata como un criterio de búsqueda extraño y nunca conducirá los comandos de base de datos no deseados, como la eliminación de una tabla.

Fuente: The H Security JS

Universidad Nacional Autonoma de México Aviso legal |  Créditos |  Staff |  Administración
Copyright © Todos los derechos reservados
UNAM - CERT