是否可以使用PureScript安全*运行不受信任的用户提交的代码?是否可以使用类型系统可靠地实施纯度和其他约束(如在Safe Haskell中)?
换句话说,是否可以使用PureScript来清理不受信任的用户代码?
*)对XSS安全,无法访问全局对象等。
答案 0 :(得分:0)
我不能就此给出一个非常确定的答案,但我会试着给你一个方向感。
自动浮现的一件事是,您需要对用户的代码进行沙盒处理,以便它们只能在沙箱中而不是在浏览器中进行播放。但是,您需要非常小心地设置该沙箱,以便不会泄漏到沙箱中。这可能是一个非常大的问题,我认为你需要在JavaScript方面对此进行一些研究。
关于类型系统,PureScript不能直接由浏览器执行。 PureScript的编译目标主要是JavaScript,可以由浏览器执行。但是,如果我没记错的话,PureScript的编译器实际上是用Haskell编写的。由于浏览器无法运行,因此您需要一台服务器来为您编译。
总而言之,我会说接受其他用户的PureScript代码是一个非常冒险的选择,我建议你重新考虑你的决定。您可以选择try.purescript.org之类的替代方法,它允许您在浏览器中编写PureScript代码段。但是我不能保证你会完全安全。