【问题标题】:How to use eval() safely in JavaScript for education app? [duplicate]如何在 JavaScript 教育应用程序中安全地使用 eval()? [复制]
【发布时间】:2019-12-14 06:51:03
【问题描述】:

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

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

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

我想知道,为了安全使用eval()new Function(),我应该考虑哪些注意事项?

或者有更好的选择吗?

【问题讨论】:

  • 在破解我自己的框架之前,我会使用jupyter notebooks 之类的东西。专门用于教育目的。
  • @YanFoto 据您所知,我可以将代码发送到 Jupyter Notebooks 执行并返回结果吗?还是我需要使用 Jupyter 自己的 IDE?
  • 他们还提供在线 IDE。见jupyter.org/hub

标签: javascript function eval


【解决方案1】:

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

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

【讨论】:

  • 谢谢格申。我尝试了js-interpreter 并在使用 ES6 时遇到了问题(胖箭头语法导致错误)。但到目前为止,sandbox 看起来可以解决问题 - 我意识到 CodeWars 使用了它的变体。谢谢!
猜你喜欢
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多