como protegerse de sql-injection en php

preguntado por camiloSegovia (285 puntos) Ene 23, 2015

Si un input es insertado directamente en la base de datos sin hacer ningun control, entonces la aplicacion se vuelve vulnerable a un SQL injection, por ejemplo::

$variable_insegura = $_POST['user_input']; 

mysql_query("INSERT INTO `tablausuarios` (`column`) VALUES ('$variable_insegura')");

Con esto podriamos decir que el usuario podria escribir en el input lo siguiente

value'); DROP TABLE tablausuarios;--

, entonces la consulta final quedaria:

INSERT INTO `tablausuarios` (`column`) VALUES('value'); DROP TABLE table;--')

Que se puede hacer para evitar esto?

1 Respuesta

0 votos
respondido por ingwilmer (780 puntos) Ene 23, 2015

Un método sencillo, de los tantos que hay es usar Htmlspecialchars(), puesto que es una función de PHP que convierte los caracteres especiales en entidades HTML.

Lo podemos utilizar de la siguiente forma:

htmlspecialchars('texto a escapar')

Por ejemplo:
Hacer clic aquí

...