Una funzione f()
utilizza eval()
(o qualcosa di così pericoloso) con i dati che ho creato e archiviato 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 mie.
Tuttavia, se mai decidessi di usarlo per qualcosa di non sicuro (ad esempio l'input dell'utente) le cose potrebbero andare terribilmente storto . Inoltre, se local_file
smette di essere locale, ciò creerebbe una vulnerabilità poiché avrei bisogno di fidarmi della macchina che fornisce anche quel file.
Come devo assicurarmi di non "dimenticare" mai che questa funzione non è sicura da usare (a meno che non siano soddisfatti criteri specifici)?
Nota: eval()
è pericoloso e di solito può essere sostituito da qualcosa di sicuro.