2024-05-12 18:22:51 发布
网友
我正在编写一个应用程序,我们需要在其中执行不受信任的python代码。(即类似于作业提交服务器的应用程序,其中学生的输入不可信)
考虑到这一点,我的第一个想法是,通过禁用该语言的文件I/O功能(因此,将代码限制为仅使用stdin/stdout),程序不会对系统造成太大的危害。在
这是正确的,还是有我没有想到的攻击载体?在
是否有某种python标志或编译器选项可以传递来隔离代码?在
我不会使用任何python沙盒方法在您的机器上执行任意代码,因为安全专业人员已经多次演示了它们是如何逃逸的。 Escaping the python sandbox
我建议在docker容器中运行代码,让新用户具有受限权限。在
Hardening Linux Containers
最后,您可以尝试将python代码解析为AST,并深入到各个级别,以确保不存在危险的操作。在
我的选择是使用docker容器,最好是限制访问的Alpine版本。在
在docker容器中运行它们!在
与任何有关安全的事情一样,没有什么灵丹妙药。您的里程数可能会有所不同。在
我不会使用任何python沙盒方法在您的机器上执行任意代码,因为安全专业人员已经多次演示了它们是如何逃逸的。 Escaping the python sandbox
我建议在docker容器中运行代码,让新用户具有受限权限。在
Hardening Linux Containers
最后,您可以尝试将python代码解析为AST,并深入到各个级别,以确保不存在危险的操作。在
我的选择是使用docker容器,最好是限制访问的Alpine版本。在
在docker容器中运行它们!在
与任何有关安全的事情一样,没有什么灵丹妙药。您的里程数可能会有所不同。在
相关问题 更多 >
编程相关推荐