Server 在服务器上安全运行用户提供的纯函数

Server 在服务器上安全运行用户提供的纯函数,server,Server,在我的服务器上,我需要能够运行由用户提供的程序,但是我不相信用户提供的代码不是恶意的。所提供的程序应该永远是,也就是说,输出结果只取决于输入,运行程序没有副作用。要实现这一点,我需要输入一些python代码(或js代码,或c或java或其他代码),然后以确保没有副作用的方式运行代码。例如,我不希望用户能够开始运行系统调用,并且可能会进行一些恶作剧。据我所知,这在任何主流语言(如python、C、js、java等)中都是不可能的。有没有一种语言能够确保没有副作用?我希望能够运行用户提供的代码,并感

在我的服务器上,我需要能够运行由用户提供的程序,但是我不相信用户提供的代码不是恶意的。所提供的程序应该永远是,也就是说,输出结果只取决于输入,运行程序没有副作用。要实现这一点,我需要输入一些python代码(或js代码,或c或java或其他代码),然后以确保没有副作用的方式运行代码。例如,我不希望用户能够开始运行系统调用,并且可能会进行一些恶作剧。据我所知,这在任何主流语言(如python、C、js、java等)中都是不可能的。有没有一种语言能够确保没有副作用?我希望能够运行用户提供的代码,并感到安全,不会有任何影响

如果没有语言在内部执行此操作,是否有某种“精简”语言,可以指定纯函数和配套编译器,然后在某些输入上运行纯函数?理想情况下,我希望任何这样的语言都是图灵完备的

有没有一种语言能够确保没有副作用

不,没有。因为,语言是通用的,不仅仅局限于小范围的编程

我希望能够运行用户提供的代码,并感到安全 不会有任何影响

如果您想限制用户运行没有副作用的代码,例如排序算法等。实际上,大多数编程语言都有一个基本库,如
stdio
system
sys
,这些库仅限于基本操作和额外操作,如文件读/写(副作用),例如,他们需要
File.io
来执行这些类型的操作

因此,您需要检查哪些LIB是允许的,哪些LIB是不允许的,并且当您的安全探查器收到纯代码时,它会检查使用了哪些LIB,它们是否合法?if
false
拒绝,if
true
运行


这些话只是最有价值的解决方案,事实上,对于一个完美的安全探查器来说,你必须花很多时间来实现它。

就像一个沙盒虚拟机?是的,如果完美的话,这会起作用。从我所读到的内容来看,你似乎不能完全信任虚拟机,有时一个聪明的程序员可以逃避虚拟机。你在说什么服务器环境?如何与代码交互?这些程序的输出到哪里去了?也许这就是你想要的:我不知道OpenFaaS在这里如何应用。你能进一步解释一下吗?