让用户上传Python脚本以便执行

Alb*_*oPL 12 python cgi

我知道让任何匿名用户上传任何类型的文件都是危险的,特别是如果它的代码.但是,我有一个想法让用户上传自定义AI脚本到我的网站.我将提供模板,以便用户可以在我用Python编写的在线网络游戏中与其他AI竞争.我要么需要一个解决方案来确保用户不会破坏任何其他文件或通过他们上传的脚本或客户端执行游戏的解决方案注入恶意代码.有什么建议?(我正在寻找一种适用于我的Python脚本的解决方案)

Col*_*ett 8

我与这个网站没有任何关联,我只是链接它,因为它试图实现你所获得的:蟒蛇的监狱.该网站是代码板.

根据about页面,它在geordi运行并使用ptrace捕获所有sys调用.除了chroot之外,他们还在虚拟机上安装防火墙以禁止出站连接.

把它视为一个起点,但我必须在整个危险事件中加入.自己要CYA.:)


Dav*_*ave 8

使用PyPy,您可以创建一个python沙箱.沙箱是一个独立的,应该是安全的python环境,您可以在其中执行脚本.更多信息在这里

http://codespeak.net/pypy/dist/pypy/doc/sandbox.html

"从理论上讲,不可能做任何不好的事情,或者从这个提示中读取机器上的随机文件."

"即使script.py来自一些随机不受信任的来源,这也是安全的,例如,如果它是由HTTP服务器完成的."


geo*_*wa4 0

为用户提供广泛的 API,并在上传时删除所有其他调用(例如导入语句)。另外,删除与文件 I/O 有关的所有内容。

(您可能需要进行多次传递以确保您没有错过任何内容。)