1 Выполнение кода, предоставленного ненадежным пользователем, используя exec, eval или ast.literal_eval

Это не представляется возможным использовать eval или exec для выполнения кода из ненадежного пользователя надежно. Даже ast.literal_eval склонен к сбоям в анализатор. Иногда можно защититься от выполнения вредоносного кода, но это не исключает возможности прямых сбоев в анализаторе или токенизаторе.

Чтобы оценить код ненадежного пользователя, вам нужно обратиться к какому-либо стороннему модулю или, возможно, написать свой собственный анализатор и собственную виртуальную машину на Python.