miércoles, 18 de agosto de 2010

Evitar inyección SQL con PHP

La inyección SQL es un tipo de vulnerabilidad muy común y relativamente sencilla de explotar (que me lo digan a mi). Se origina por una incorrecta gestión de las variables de entrada empleadas para construir nuestras consultas SQL.

PHP ofrece una función específica para prevenir este inconveniente mysql_real_escape_string() que básicamente se encarga de escapar todos los caracteres especiales de una cadena para su uso en una sentencia SQL.

$val = $_POST["txtId"];
$val = mysql_real_escape_string($val);
$sql = "SELECT * FROM tbl WHERE id = $val";