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

0 comentarios:

Publicar un comentario

¿Tienes alg煤n comentario? ¿Qu茅 te ha parecido este art铆culo? Cu茅ntalo.

 
>