目标是在PHP中创建一个系统,允许用户提交字符串,将javascript函数应用于该字符串,然后在javascript函数处理后返回字符串的值。该网站有很多其他用PHP编写的功能,因此不会改变。但是,如果需要,我可以使用其他堆栈来完成项目的这个组件(node.js,Java等)
有没有人知道如何通过以下限制来实现这一目标:
- 处理用户提交的值的函数必须是javascript
醇>
- javascript函数的处理必须是serverside
- javascript函数不应该对文件系统(加载文件,保存文件等)或任何类型的IO有任何访问权限 功能
- javascript函数不应该占用超过一定量的内存(让我们说5 MB),但可以定义(不是 必须在运行时,但可在某处配置)
- javascript函数的运行时间不能超过一定的毫秒数(假设为3000毫秒),但可以定义(不是 必须在运行时,但可在某处配置)
- 如果处理javascript
时出错,系统应该能够返回- javascript函数不应该能够调用任何外部服务(http请求等)。我基本上只希望系统只能执行利用"基于CPU的"功能无需连接任何外部源。我把它放在引号中,因为我知道这不是一个术语,但希望它有助于澄清事情。
基本上,我正在尝试创建一个系统,它可以从服务器端的不受信任的源处理Javascript函数并返回函数的值。我一直在寻找任何图书馆或参考案例研究,但没有找到理想的东西。
答案 0 :(得分:1)
首先想到的是Node.js,服务器端JavaScript。俯视该路线有一个沙盒模块,http://gf3.github.io/sandbox/。
如果你想要更加安全,你可能想在自己的孤立机器/服务器/ docker镜像上运行它,以限制暴露,如果有人设法逃离沙箱。