Функція 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()
небезпечно і зазвичай може бути замінено чимось безпечним.