我正在开发纯Python的网页游戏,并希望有一些简单的脚本可用于更多动态的游戏内容.特权用户可以实时添加游戏内容.
如果脚本语言可以是Python,那就太好了.但是,由于恶意用户可能会造成严重破坏,因此无法在访问游戏运行环境的情况下运行.是否可以在纯Python中运行沙盒Python?
更新:事实上,由于真正的Python支持会有点过分,因此使用Pythonic语法的简单脚本语言将是完美的.
如果没有任何Pythonic脚本解释器,是否有任何其他开源脚本解释器用纯Python编写,我可以使用?要求是对变量,基本条件和函数调用(不是定义)的支持.
我想创建一个人们可以上传他们的Python脚本的网站.当然我想执行这些脚本.这些脚本应该做一些有趣的工作.问题是人们可能上传可能损害我的服务器的脚本,我想阻止它.在不损害我的系统的情况下运行任意脚本的选项是什么 - 实际上根本没有看到我的系统?谢谢
我想创建一个Web应用程序,允许用户上传一些C代码,并查看其执行结果(代码将在服务器上编译).用户不受信任,这显然具有一些巨大的安全隐患.
所以我需要为应用程序创建一些沙盒.在最基本的层面上,我想限制对某些指定目录的文件系统访问.我无法直接使用chroot jails,因为Web应用程序不是以特权用户身份运行.我想一个suid可执行文件设置jail将是一个选项.
上传的程序相当小,因此它们应该快速执行(最多几秒钟).因此,我可以在预设超时后终止进程,但是如何确保它不会产生新进程?或者,如果我不能,那么杀死整个pgid是一种可靠的方法吗?
除了"根本不做"之外,最好的方法是什么?:)我错过了哪些其他明显的安全问题?
FWIW,Web应用程序将用Python编写.
假设互联网上有一台服务器可以发送一段代码进行评估.在某些时候,服务器会获取已提交的所有代码,并开始运行和评估它.但是,在某些时候它肯定会碰到一些邪恶的程序员发送的"os.system('rm -rf*')".除了"rm -rf"之外,你可以期待人们尝试使用服务器发送垃圾邮件或者给某人发送垃圾邮件,或者使用"while True:pass"之类的东西.
有没有办法与这种不友好/不受信任的代码合作?特别是我对python的解决方案很感兴趣.但是,如果您有任何其他语言的信息,请分享.