⚠️ Inyección SQL a través de f-string
Si insertas valores directamente en SQL mediante f-string, un atacante puede ejecutar cualquier código en la base de datos:
name = "Alice'; DROP TABLE accounts; --"
query = f"SELECT * FROM accounts WHERE name = '{name}'"
conn.sql(query)
💥 ¡Y la tabla accounts ha sido eliminada!
¿Por qué sucede esto?
Porque la cadena con el nombre se inserta tal cual y se interpreta como parte de la consulta SQL.
✅ La forma correcta es usar parámetros:
name = "Alice'; DROP TABLE accounts; --"
query = "SELECT * FROM accounts WHERE name = ?"
conn.sql(query, params=(name,))
✔ El nombre se busca como texto, y la base permanece segura.
👉 Recuerda:
Nunca insertes datos de usuario directamente en SQL.
Usa consultas parametrizadas — es una protección confiable contra inyecciones SQL.
@debsconsultores





