15/02/2011, 05:37
|
|
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. |