1

我想让我们的用户用 JavaScript 编写字符串解析逻辑,然后在服务器上执行。

编辑(更多信息)

  • 正则表达式不是他们需要的选项ifelse等等switch
  • 我想避免创建自定义语言
  • 这个想法是,如果用户知道 JS,他们可以编写自定义逻辑

我看过CodePen的Stopping Infinite Loops ,他们使用Esprima生成抽象语法树,然后重新生成我们使用Escodegen的 JavaScript 。这种方法让我担心的是,有人仍然可以引入某种 Unicode hack。

4

2 回答 2

2

最安全的方法是为 javascript 的某些子集(或任何其他脚本语言)或您自己的域特定语言创建自己的解析器/解释器。这是很多工作,但仍然比在服务器上维护沙盒 JavaScript VM 并与之通信要容易和安全得多。

于 2018-10-11T09:39:55.183 回答
0

一个主意:

  1. 用户在网页上编写自定义函数

  2. 网页从服务器获取数据

  3. 自定义函数应用于客户端的数据

  4. 结果被发送回服务器(确保结果不受影响)

于 2018-10-11T11:02:00.420 回答