如何在 JavaScript 教育应用程序中安全使用 eval()?

How to use eval() safely in JavaScript for education app?

我知道之前有人问过类似的问题,但我的用例有点不同。

我想创建一个类似于 LeetCode、CodeWars 等的教育应用程序,用户可以在其中输入自己的函数来解决算法。

现在,我专注于 JavaScript,因此代码 可以 在客户端进行评估。

我想知道安全使用eval()new Function()需要注意什么?

或者有更好的选择吗?

幸运的是你并不孤单,有人在你之前发明了轮子。您可以查看 NeilFraser/JS-Interpreter or sandbox.

可能还有更好的 documented/implemented 解决方案,但我不知道,但这是一个好的开始。