Функция f()
использует eval()
(или что-то столь же опасное) с данными, которые я создал и сохранил local_file
на компьютере, на котором запущена моя программа:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
безопасен для запуска, так как строки, которые я ему предоставляю, мои.
Однако, если я когда-нибудь решу использовать его для чего-то небезопасного (например, пользовательского ввода), все может пойти ужасно неправильно . Кроме того, если local_file
перестанет быть локальным, это создаст уязвимость, так как мне нужно будет доверять машине, которая также предоставляет этот файл.
Как я должен убедиться, что я никогда не «забуду», что эта функция небезопасна в использовании (если не соблюдены определенные критерии)?
Примечание: eval()
опасно и обычно может быть заменено чем-то безопасным.