Mostrando las entradas con la etiqueta Tips. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Tips. Mostrar todas las entradas

jueves, 18 de septiembre de 2025

🐍 Python Tips: Evitar SQL inyección 💉 en cadenas de texto

⚠️ 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

 
>