我想做一个网站,人们可以上传他们的Python脚本。当然,我想执行这些脚本。这些脚本应该会做一些有趣的工作。问题是,人们可能会上传脚本,这可能会损害我的服务器,我想阻止这种情况。在不损害我的系统的情况下运行任意脚本的选项是什么--实际上根本看不到我的系统?谢谢
发布于 2010-09-11 06:10:08
“不能这样做。”
运行任意(不受信任的)脚本和保持安全是矛盾的。您应该使用自定义内核、jails、vms等。
你可以看看http://codepad.org/about是如何做到这一点的,它有很多工作要做。
发布于 2011-07-08 22:12:58
我不知道在早期的版本中,在Python3中,你可以通过types.FunctionType创建可以访问自定义作用域的函数。
def f():
return __builtins__
f() # this will work because it has access to __builtins__
scope = {}
sandboxed = FunctionType(f.__code__,scope)
sandboxed() # will throw NameError, builtins is not defined
返回的函数只能访问作用域字典中提供的任何内容。我想知道是否仍然有黑客围绕这一点。
发布于 2010-09-11 10:42:48
现在有相当多的web服务器运行着不可信的python代码:
你可能想看看他们是如何解决问题的。
或者,您可能想看一种不同的方法:
https://stackoverflow.com/questions/3688708
复制相似问题