Если у меня есть такой код:
string = input(">")
exec(string)
Пользователь мог бы сделать что-то вроде
import os
os.system("rm -rf")
В идеале я хотел бы, чтобы пользователь вводил данныечто-то вроде
foo(3)
в консоль, с foo()
в качестве пользовательской функции, которую я определил, и передать ее Python, чтобы он выплевывал результаты.
Можно ли либо
экранировать такие символы, как import
или os
, либо что-либо, что не указано в коде
Используйте что-то вроде Docker, чтобы ограничить права доступа к программе
Мой единственный другой вариант, который я могу реально увидеть, - это написать собственный язык программирования, но это выходит за рамки моегоОбъем. * * тысяча двадцать семь