Una función f()
usa eval()
(o algo tan peligroso) con los datos que creé y almacené en local_file
la máquina que ejecuta mi programa:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
es seguro de ejecutar ya que las cadenas que le proporciono son mías.
Sin embargo, si alguna vez decido usarlo para algo inseguro (por ejemplo, entrada del usuario), las cosas podrían salir terriblemente mal . Además, si local_file
deja de ser local, crearía una vulnerabilidad, ya que también necesitaría confiar en la máquina que proporciona ese archivo.
¿Cómo debo asegurarme de nunca "olvidar" que esta función no es segura de usar (a menos que se cumplan criterios específicos)?
Nota: eval()
es peligroso y generalmente puede ser reemplazado por algo seguro.