Una funzione f()
utilizza eval()
(o qualcosa di pericoloso) con i dati che ho creato e memorizzati in local_file
sulla macchina che esegue il mio programma:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
è sicuro da eseguire poiché le stringhe che fornisco sono le mie.
Tuttavia, se decido di usarlo per qualcosa di non sicuro (ad esempio, input dell'utente) le cose potrebbero andare terribilmente sbagliato . Inoltre, se local_file
smette di essere locale, creerebbe una vulnerabilità poiché avrei bisogno di fidarmi anche della macchina che fornisce quel file.
Come dovrei assicurarmi di non dimenticare mai che questa funzione non è sicura da usare (a meno che non vengano soddisfatti criteri specifici)?
Nota: eval()
è pericoloso e può di solito essere sostituito da qualcosa di sicuro.