Согласно PyPy docs « имени встроенных команд всегда ссылающемуся на встроенный модуль, никогда не словарь, как это иногда бывает в CPython. Присвоение не встроенные команд имеют никакого эффекта.» Например, в CPython:Можно ли ограничить встроенные функции в PyPy?
>>> eval("__import__('os').system('clear')", {'__builtins__':{}})
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name '__import__' is not defined
В PyPy он запускает его без ошибок. Есть ли другой способ ограничения встроенных функций?
Спасибо за ответ. Я знаю, что пустой трюк '__builtins__' недостаточно для обеспечения безопасности сам по себе, это был всего лишь пример. – gsakkis