我想让我们的用户用 JavaScript 编写字符串解析逻辑,然后在服务器上执行。
编辑(更多信息):
- Regex 不是一个选项,因为他们需要
if
、else
、switch
等 - 我想避免创建自定义语言
- 想法是,如果用户了解 JS,他们就可以编写自定义逻辑
我看过Stopping Infinite Loops通过 CodePen 他们生成一个 Abstract Syntax Tree使用 Esprima然后重新生成我们使用的 JavaScript Escodegen .这种方法让我担心的是,有人仍然可以引入某种 Unicode hack。
最佳答案
最安全的方法是为 javascript(或任何其他脚本语言)的某些子集或您自己的特定领域语言创建您自己的解析器/解释器。这是很多工作,但仍然比在服务器上维护沙盒 javascript VM 并与之通信更容易和更安全。
关于javascript - 允许在客户端上编写的 JavaScript 在服务器上执行的最安全方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52755267/