Uma função f()
usa eval()
(ou algo tão perigoso) com os dados que eu criei e armazenei na local_file
má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_file
local 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.