运行 不受信任的 PureScript 代码

Running untrusted PureScript code

是否可以使用 PureScript 安全* 运行 不受信任的用户提交的代码?是否可以使用类型系统(如 Safe Haskell)可靠地强制执行纯度和其他约束?

换句话说,是否可以使用 PureScript 清理不受信任的用户代码?

*) 针对 XSS 安全,无法访问全局对象等

关于这个我不能给你一个非常明确的答案,但我会试着给你一个方向感。

自动想到的一件事是您需要对用户的代码进行沙盒处理,以便他们只能在沙盒中而不是在浏览器中使用。但是,您需要非常小心地设置沙箱,以免内容泄漏到沙箱中。这可能是一个相当大的问题,我认为您需要在 JavaScript 方面对此进行一些研究。

关于类型系统,PureScript 不能直接由浏览器执行。 PureScript 的编译目标主要是 JavaScript 可以被浏览器执行。不过,如果我没记错的话,PureScript 的编译器其实是用 Haskell 写的。由于这不能由浏览器运行,因此您需要一个服务器来为您编译它。

总而言之,我认为接受其他用户的 PureScript 代码是一个非常冒险的选择,我建议您重新考虑您的决定。您可以选择 try.purescript.org 之类的替代方案,它可以让您在浏览器中编写 PureScript 代码片段。但是我不能保证这将是完全安全的。