Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户输入的Python安全限制_Python_Security_Scripting_Permissions_Sandbox - Fatal编程技术网

用户输入的Python安全限制

用户输入的Python安全限制,python,security,scripting,permissions,sandbox,Python,Security,Scripting,Permissions,Sandbox,在开发我的一个应用程序的过程中,我想给用户一个更强大的过滤器。因此,我想为用户提供一个简单的脚本接口。脚本语言应该是Python 出于明显的原因,我想缩小语言的范围以符合我的特定目的(我不希望用户接触服务器的HDD文件等)。我也不想自己编写Python解释器(这将重新发明轮子,“新”轮子最终将是矩形的)。然而,我还没有找到任何适合这个目的的库或模块 Groovy的编译定制器和编译器配置方法正是我想要的,Python中是否存在类似的东西?您正在寻找的是所谓的“沙盒”或“受限执行” 简而言之,Pyt

在开发我的一个应用程序的过程中,我想给用户一个更强大的过滤器。因此,我想为用户提供一个简单的脚本接口。脚本语言应该是Python

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


Groovy的编译定制器和编译器配置方法正是我想要的,Python中是否存在类似的东西?

您正在寻找的是所谓的“沙盒”或“受限执行”

简而言之,Python极客和大师们曾多次尝试在Python之上构建沙箱,但最终都失败了

主要原因是Python提供了太多的路径来做一些事情,沙箱要么禁止常见用例(使许多库和Python代码变得无用),要么沙箱中有漏洞,这会使概念变得无用

因此,虽然这看起来是一个简单的好主意,但到目前为止,还没有解决方案。顺便说一句,Python中没有钩子可以调整字节码编译器来实现类似的功能

相关的:


最简单的方法-禁止自动加载大多数模块/功能,然后阻止它们选择导入其他LIB。您还可以覆盖您不希望它们使用的函数。