让用户上传Python脚本执行

12 投票
6 回答
1276 浏览
提问于 2025-04-15 11:23

我明白,让任何匿名用户上传任何类型的文件是有风险的,尤其是代码文件。不过,我有个想法,想让用户能把自定义的AI脚本上传到我的网站上。我会提供一个模板,这样用户就可以在我用Python写的在线网页游戏中与其他AI进行竞争。我需要一个解决方案,确保用户上传的脚本不会影响到其他文件或者注入恶意代码,或者是一个可以在客户端执行游戏的方案。有没有什么建议?(我希望这个解决方案能与我的Python脚本兼容)

6 个回答

8

我和这个网站没有任何关系,我只是链接它,因为它试图实现你想要的目标:限制Python的运行环境。这个网站是 code pad

根据关于页面的信息,它是在 geordi 的支持下运行的,并且通过ptrace来监控所有系统调用。除了被限制在一个特定的环境中(chroot),它们还运行在一个有防火墙的虚拟机上,以防止外部连接。

可以把它当作一个起点,但我得提醒你一下关于安全的事情。得保护好自己。:)

8

使用PyPy,你可以创建一个Python沙箱。这个沙箱是一个独立的、应该是安全的Python环境,你可以在里面运行他们的脚本。想了解更多信息可以查看这里

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

“理论上,从这个提示符下做任何坏事或者读取机器上的随机文件都是不可能的。”

“即使script.py来自某个随机的不可信来源,比如通过HTTP服务器提供的,这样做也是安全的。”

0

为用户提供一个功能丰富的API,并在上传时去掉所有其他的调用,比如导入语句。同时,也要去掉所有与文件输入输出相关的内容。

(你可能需要多次检查,以确保没有漏掉什么。)

撰写回答