是否有可能使用PureScript来安全地*运行不受信任的用户提交的代码?是否可以使用类型系统可靠地强制执行纯度和其他约束(就像在安全Haskell中一样)?
换句话说,是否可以使用PureScript来清理不受信任的用户代码?
*)对XSS安全,不能访问全局对象等。
发布于 2017-07-25 03:48:40
我不能给你一个非常明确的答案,但我会试着给你一个方向感。
自动出现在脑海中的一件事是,您需要用沙箱保护用户的代码,以便他们只能在沙箱中运行,而不能在浏览器中运行。但是,您需要非常小心地设置沙箱,以使内容不会泄漏到沙箱。这可能是一个很大的问题,我认为你需要在JavaScript方面做一些研究。
关于类型系统,PureScript不能直接由浏览器执行。PureScript的编译目标主要是可以由浏览器执行的JavaScript。但是,如果我没记错的话,PureScript的编译器实际上是用Haskell编写的。因为它不能被浏览器运行,你需要一个服务器来为你编译它。
总而言之,我想说接受其他用户的PureScript代码是一个非常危险的选择,我建议您重新考虑您的决定。您可以选择像try.purescript.org这样的替代方案,它允许您在浏览器中编写PureScript代码片段。然而,我不能向你保证这将是完全安全的。
https://stackoverflow.com/questions/45218199
复制相似问题