Une fonction f()
utilise eval()
(ou quelque chose de dangereux) avec des données que j'ai créées et stockées local_file
sur la machine exécutant mon programme:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
est sûr à exécuter car les chaînes que je lui fournis sont les miennes.
Cependant, si jamais je décidais de l'utiliser pour quelque chose de dangereux (par exemple, une entrée utilisateur), les choses pourraient mal tourner . De plus, si l' local_file
arrêt cesse d'être local, cela créerait une vulnérabilité, car je devrais également faire confiance à la machine qui fournit ce fichier.
Comment dois-je m'assurer de ne jamais "oublier" que cette fonction n'est pas sûre à utiliser (sauf si des critères spécifiques sont remplis)?
Remarque: eval()
est dangereux et peut généralement être remplacé par quelque chose de sûr.