繁体   English   中英

安全的Python解释器?

[英]Secure Python intepreter?

有安全的Python解释器吗?

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

这样一个安全的Python VM是否存在?

我知道没有这种公开发布的“安全解释器”(显然谷歌有一个它在App Engine中使用的,虽然有一些不同于你想要的限制,例如,某些文件可以以只读方式打开) 。 但是,有一些声称,例如在这里 ,虽然我无法验证它们。 PypyPython的在沙箱中大概是最上面的一个值得尝试,因为高品质和pypy开发团队的声誉(他们是不太可能使未经证实的说法)。

您可以使用SecurityManager在JVM上运行Jython,它允许您指定允许/禁止的操作。

在某种意义上,您不需要修改Python来限制执行。 只需看看codepad.org ,一个pastebin,你可以在其中粘贴代码(用Python和其他语言)并让它运行并显示输出。 代码在非常有限的环境中运行,但这只是操作系统配置。 示例粘贴

您可以在具有受限权限的.NET应用程序域中运行IronPython。

这肯定适用于Windows,可能/可能在Mono(我真的不能说)。

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

关于嵌入Iron Python in Action一书的章节中的第一个例子显示了编写这样的启动器。

我不记得它是否涵盖appdomains,但该信息应该在网上的某个地方。

我是本科生,在我的第一年,我们学习了蟒蛇。 我们有这些称为“CodeLabs”的东西,必须定期提交。 它的工作原理是提出一个问题,并要求学生将他们的答案输入文本框并在某些测试用例上运行该代码并检查其返回值

有一天,codelabs网站(turingscraft.com)无法访问,因为有人决定运行一个无休止的while循环并在其中调用os.fork()。

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

如果我是你,我会查询有关他们网站的信息。 也许他们发布了一些关于此的信息以及如何修复它

您可以随时查看源代码并制作自己的Python风格。 如果有足够的人需要它,它就没有时间运行了。

我最近一直在玩这个。 我的要求包括Python 3.x,它立即将Jython和IronPython等解决方案从表中删除。 无论如何我都会犹豫不决,因为我从不信任用户模式语言虚拟机。

在这种情况下,就我的目的而言,到目前为止,最好的解决方案是完全取出解释器,并在一个强力锁定的容器(OpenVZ或类似的)中运行。 然而,这对问题起了作用(尽管不是完全虚拟化的大锤),如果你必须运行真正大量的孤立解释器,可能也不可行。

但是,一个好处是,因为它不依赖于任何特定解释器的安全性,所以您可以在环境中使用任何您想要的任意语言 - 您不必将自己绑定到Python或语言集合/可用于JVM或.NET / Mono的实现。

安全性不是操作系统的工作吗?

我的意思是,创建一个对文件等具有受限访问权限的用户。 然后让vm只运行这些权限。

或许我说的是胡说八道。 我不是系统管理员或安全专家,但我倾向于使用为其制作的工具。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM