以前,使用rexec模块(http://docs.python.org/library/rexec.html)在Python中实现“沙盒”环境。不幸的是,由于某些安全漏洞,它已被弃用/删除。有其他选择吗?
我的目标是让Python代码执行半信任的Python脚本。在理想情况下,对预定义集合之外的任何函数的调用都会引发异常。根据我对rexec弃用的了解,这可能是不可能的。所以我会尽力而为。我可以生成一个单独的进程来运行脚本,这很有帮助。但是他们仍然可能滥用I / O或处理器/内存资源。
您可能需要提供自己__import__的模块,以防止包含任何您认为“滥用I / O或处理器/内存资源”的模块。
__import__
您可能要从pypy开始,并创建自己的解释器,该解释器会限制资源的使用。