用户输入的Python安全限制

时间:2013-11-04 13:52:47

标签: python security scripting permissions sandbox

在开发我的一个应用程序期间,我已经到了一个点,我想给用户一个更强大的过滤器。因此,我想为用户提供一个简单的脚本界面。脚本语言是Python。

出于显而易见的原因,我想收紧语言的范围以符合我的特定目的(我不希望用户触摸服务器的HDD文件等)。我也不想自己写一个Python解释器(这将重新发明轮子,而“新”轮子最终将是矩形)。但是,我没有找到任何合适的库或模块用于此目的。

Groovy的编译定制器和编译器配置方法正是我想要的,对Python有类似的东西吗?

1 个答案:

答案 0 :(得分:1)

您正在寻找的内容称为"沙盒"或者"限制执行。" This wiki page discusses some of the details

简而言之,Python极客和专家们已经做了一些努力在Python之上构建一个沙箱,但最终都失败了。

主要原因是Python提供了许多路径来执行某些事情,沙箱要么禁止常见用例(渲染很多库和Python代码无用),要么沙箱中必须有漏洞会使这个概念变得毫无用处。

因此,虽然它看起来像一个好的和简单的想法,到目前为止,没有解决方案。 AFAIK,Python中没有钩子来调整字节码编译器来实现像Groovy Sandbox这样的东西。

相关: