有安全的Python Inteptreter吗?

想象一下您可以在计算机上运行的Python VM,这限制了操作。无法打开文件,没有系统调用等。它只是将stdin转换为Stdout,也许使用文本处理 +数学等。

如此安全的Python VM是否存在?

有帮助吗?

解决方案

您可以使用SecurityManager在JVM上运行Jython,该安全管理器允许您指定允许 /不允许的操作。

其他提示

我知道没有这样的“安全解释器”是公开分发的(显然,Google在App Engine中使用了它,尽管与您想要的那些限制有所不同,例如,某些文件 能够 以仅读方式打开)。但是,有一些主张 这里, ,尽管我无法验证它们。 pypy' 在沙盒中的python 鉴于PYPY的开发团队的高质量和声誉,可能是最值得一试的人(他们不太可能提出未经证实的主张)。

您不需要修改的Python即可限制某种意义上的执行。只是看 codepad.org, ,您可以在其中粘贴代码(用Python和其他语言)并运行并显示的输出。该代码在非常有限的环境中运行,但这只是OS配置。 ((示例糊)

您可以在具有限制特权的.NET AppDomain中运行Ironpython。

这肯定会在Windows中起作用,可能/可能/可能在单声道中(我真的说)。

您需要编写一个嵌入Ironpython解释器并将脚本传递给它的小程序。

关于书中嵌入的章节的第一个示例 铁python在行动 展示写这样的启动器。

我不记得它是否涵盖了应用程序,但是该信息应该在网络上。

我是本科生,在我的第一年,我们被教了python。我们有这些称为“ codelabs”的东西必须定期提交。它通过提出问题并要求学生将答案输入文本框并在某些测试用例上运行该代码并检查其返回值来起作用。

有一天,Codelabs网站(turingscraft.com)变得无法访问,因为有人决定在循环时运行一个无尽的操作,并在其中打电话给os.fork()。

对于TuringsCraft.com管理员来说,这显然是一个问题。但是,他们后来找到了一种限制学生访问此类命令的方法。

如果我是您,我会查找有关他们网站的信息。也许他们发布了一些有关此信息以及如何解决的信息

您总是可以转到源代码并制作自己的Python风味。如果有足够的人需要它,那将没有时间启动和运行。

我最近一直在玩这个。我的要求包括Python 3.X,它立即将诸如Jython和Ironpython之类的解决方案从桌子上拿下来。无论如何,我都会犹豫要走这条路线,因为我从未信任用户模式语言VM。

在这种情况下,到目前为止,最好的解决方案是将其完全从解释器的手中拿出,并在强锁定的容器(OpenVZ或类似)中运行。但是,这是解决问题的锤子(尽管不是完全虚拟化的大锤),并且如果您必须运行真正的大量孤立口译员,则可能是不可行的。

不过,一个好处是,因为它不依赖于任何特定解释器的安全性,因此您可以在环境中使用任何任意语言 - 您不必将自己与Python或一组语言/可用于JVM或.NET/MONO的实现。

安全系统的安全不是一个工作吗?

我的意思是,创建一个用户对文件等有限的访问。然后让VM仅具有这些权利。

也许我在说胡说八道。我不是Sysadmin或安全专家,但是我倾向于使用为其制作的工具做事。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top