SQL injections en PHP

Muchos de Ustedes han escuchado hablar del famoso SQL Injections , y más de uno se pregunta ¿Qué quiere decir eso?
La inyección de sql son códigos, mejor dicho son script que ultilizan los "hackers" para modificar , extraer o manipular datos almacenados.
¿Como lo hacen?, muy fácil si ustedes se ponen a pensar cuando creamos una cuenta por la página de nuestro juego, los datos viajan por .php a traves de variables hacía la .DB (Base de Datos) esa es la conexión que tiene la página web a nuestra Base de Datos que por defecto todos llamamos MuOnline.

Los inyectores se ejecutan de esa manera, en vez de enviar los datos de la cuenta envian otros.

mssql_connect(..);
mssql_select_db(..);
$account = $_POST['acc']; // Usuario
$password = $_POST['pass']; //Password
// Otras variables
$query = mssql_query("select count(*) from [memb_info] where [memb___id]='$account'");
?>
Ese es un ejemplo claro de envio de datos de un sitio a una base de datos
En la primera linea se conecta a la base de datos y en la segunda linea, luego tenemos las variables $cuenta $ password.
Las inyecciones pueden ser hechas en un $_POST, $_GET , $_REQUEST, $_COOKIE o a cada valor que el usuario puede tener acceso.

Una forma  a esto es utilizar "addslashes()" que devuelve una cadena con barras invertidas delante de los carácteres que necesitan escaparse en situaciones como consultas de bases de datos, etc.
Los carácteres que se escapan son la comilla simple ('), comilla doble ("), barra invertida (\) y NUL (el byte NULL)

SQL_injections.txt [2 KB]

¿Necesitas ayuda? Visita www.iceventas.com y nosotros lo hacemos por ti.

Se han publicado un total de 8 comentarios en Mu Online Tutoriales :

22 de octubre de 2013, 2:02

Donde modificamos esto "addslashes()" para evitar el ataque??

22 de octubre de 2013, 8:20

Anónimo : ¿Modificar? ... no comprendo su pregunta.
addslashes() es una función.
Saludos

10 de marzo de 2014, 14:11

Buenas hermano una preguntica y quisiera que me ayudaras en este asunto como haría en caso de puedo cambiarle el nombre a la base de datos para que la inyeccion no sea a la data como tal o que tendria que hacer para que no procese esos codigos a mi sql y se borren las datas. Gracias hermano saludos

11 de marzo de 2014, 9:55

Anónimo : Cambias el nombre de la db y direccionar los archivos a esa nueva DB.
Saludos

17 de marzo de 2014, 20:30

si eso seria una buena seguridad no? como se hace eso hermano disculpa la molestia. Gracias y saludos

18 de marzo de 2014, 8:50

Anónimo : No, eso es algo básico.
Saludos

16 de noviembre de 2014, 23:24

Como lo implemento en mi web?

17 de noviembre de 2014, 9:39

Jhonny Alvarez : ¿En el caso de addslashes() te refieres?
Saludos

Publicar un comentario en la entrada