Uma função f()usa eval()(ou algo tão perigoso) com os dados que eu criei e armazenei na local_filemáquina executando meu programa:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f() é seguro de executar, pois as cordas que forneço são minhas.
No entanto, se eu decidir usá-lo para algo inseguro (por exemplo, entrada do usuário), as coisas podem dar muito errado . Além disso, se o local_filelocal deixar de ser local, isso criaria uma vulnerabilidade, pois eu precisaria confiar na máquina que fornece esse arquivo também.
Como devo garantir que nunca "esqueço" que esta função não é segura (a menos que critérios específicos sejam atendidos)?
Nota: eval()é perigoso e geralmente pode ser substituído por algo seguro.