安全的Python解释器?
有没有安全的Python解释器?
想象一下,有一个Python虚拟机可以在你的电脑上运行,但它限制了一些操作。比如说,不能打开文件,不能进行系统调用等等。它只会把输入的内容(stdin)转换成输出的内容(stdout),可能还会进行一些文本处理和数学运算。
有没有这样的安全Python虚拟机呢?
8 个回答
2
其实你不需要修改Python就能在某种程度上限制代码的执行。你可以看看 codepad.org,这是一个可以粘贴代码(支持Python和其他语言)并运行的地方,运行后会显示输出。这里的代码是在一个非常受限的环境中运行的,但这只是操作系统的配置问题。(示例代码)
7
我不知道有什么“安全解释器”是公开分发的(显然,谷歌在它的App Engine中使用了一个,不过它的限制和你想要的有些不同,比如某些文件是可以以只读方式打开的)。不过,有一些关于这方面的说法,比如这里提到的,但我无法验证这些说法。Pypy的Python in a Sandbox可能是值得尝试的最佳选择,因为pypy的开发团队质量高、声誉好(他们不太可能做没有根据的说法)。
2
你可以在Java虚拟机上运行Jython,并使用一个安全管理器,这样你就可以指定哪些操作是允许的,哪些是不允许的。