Utilizando eval y exec de forma segura en Python 🐍

Posted by

eval y exec: Peligrosamente útiles en Python 🐍

eval y exec: Peligrosamente útiles en Python 🐍

En Python, las funciones eval() y exec() pueden ser herramientas poderosas, pero a la vez peligrosas si no se utilizan con precaución. Ambas funciones permiten la ejecución de código Python dinámicamente, lo que puede ser útil en ciertas situaciones, pero también puede abrir la puerta a vulnerabilidades de seguridad si se utilizan de manera incorrecta.

eval()

La función eval() en Python permite ejecutar una cadena de texto que contiene código Python. Por ejemplo:

        
            code = "2 + 2"
            result = eval(code)
            print(result)  # Output: 4
        
    

Es importante recordar que eval() puede ejecutar cualquier código Python, por lo que se debe tener mucho cuidado al utilizarla con datos no confiables, ya que podría permitir la ejecución de código malicioso.

exec()

Por otro lado, la función exec() en Python permite ejecutar un bloque de código Python. Por ejemplo:

        
            code = """
            for i in range(5):
                print(i)
            """
            exec(code)
        
    

Al igual que eval(), exec() también puede ser peligrosa si se utiliza con datos no confiables, ya que podría ejecutar código malicioso en el sistema.

En resumen, eval() y exec() son funciones peligrosamente útiles en Python, pero es importante utilizarlas con precaución y validar siempre los datos de entrada para evitar vulnerabilidades de seguridad en nuestras aplicaciones.

0 0 votes
Article Rating
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@Linkfydev
1 month ago

Quieres estudiar python? Enlace a mi curso de Python: 👉 https://www.minigen.io/

@ugulbertosanchez7978
1 month ago

La cosa es esta:
eval(str) evalúa las operaciones matemáticas contenidas en ese str
exec(str) ejecuta como código python el argumento str
En python puedes usar ; (irónico, ¿no?) para separar distintas líneas de código en una sola línea.
Ejemplo: a = 6; print(a)
Imprime 6

@JuanMaGonzalez1998
1 month ago

Un muy buen uso del eval es borrar toda la base de datos de un sitio web, nunca dejen a un usuario evaluar su input con un eval() gente 😂

@DanFurArt
1 month ago

que buen fondo de pantalla 🗿