Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/02/2011, 05:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Concatenar variables en python.

Solamente estás dando oportunidad a una inyección SQL si las variables provienen de una entrada del usuario.

Es bien simple, imagina esta situación: Un formulario de inicio de sesión, con campos usuario y contraseña. Un SELECT contra MySQL para probar si el usuario existe:

SELECT COUNT(usuario) FROM mitabla WHERE usuario='$usuario'

Ahora imaginate que no estás filtrando los datos de entrada, y yo voy a tu formulario y escribo esto en el campo de Usuario: ' OR 1=1

¿El resultado al concatenar?
SELECT COUNT(usuario) FROM mitabla WHERE usuario='' OR 1=1

O aún peor, ¿qué pasa si ingreso '; DROP TABLE usuarios?
SELECT COUNT(usuario) FROM mitabla WHERE usuario=''; DROP TABLE usuarios

¿Queda claro?

El tema de las %s es simplemente para utilizar formateo de cadenas, es equivalente a lo que se hace con printf() en PHP o en C. Te evitás tener que concatenarlo de a trozos, y es más rápido.


Saludos.