好的,所以我正在制作一款可以教人们如何编码的应用。我想我会使用'Ace Editor'来允许用户编写javascript。
我需要能够运行用户编写的这个javascript,并将结果返回给它们。如果他们写错了,或者其他任何事情......这可能是一个错误。
我已经对如何在浏览器中运行javascript进行了一些研究,并发现eval()是一种val方式。我知道我应该使用沙盒'但我不确定我是否完全理解这是什么,并且绝对不懂如何制作。
因此,我的问题是如何在浏览器中安全地运行用户的javascript并将结果返回给他们。
(这是我的第一篇文章,我对这一切都很陌生,所以我真的不知道自己在做什么)
答案 0 :(得分:0)
用户编写的代码只能在浏览器中运行,因此他们很可能无意中造成任何外部伤害。可能发生的最糟糕的事情是他们可以写一个无限循环或类似的东西,这会冻结他们的浏览器一段时间,但现代浏览器有机制从中恢复。
eval()
被认为是不安全的,因为它可能运行来自其他用户的恶意代码,但在这种情况下使用它是安全的,因为评估的代码不会来自外部源。