1

我正在开发一个 HTML5 游戏,作为功能之一,我希望更高级的用户能够用 javascript 编写可以由游戏中的对象运行的简短脚本。问题是我想限制玩家脚本可以做什么,这样他们就不能打开新窗口、作弊、修改游戏的性质等。但是,我想向脚本公开某些方法,所以他们可以做出有用的东西。

一些人建议我可以使用 Web Workers 来做到这一点。其他人告诉我,我需要在 javascript 中构建一个解释器来执行此操作。显然,我不能只使用 eval,那么如果有“最佳”方法,我该怎么做?最好的方法是什么?

4

1 回答 1

1

您不需要创建沙箱,Javascript 已经为您完成了。

如果您在页面内创建 iframe,则该 iframe 将拥有自己的 javascript 环境,该环境与原始页面分开。然后就可以使用html5帧间通信来回发送消息了。iframe 将运行用户定义的程序并将其答案发送回主机以进行评估。您不应该相信从 iframe 返回的内容并丢弃任何超出范围的内容。

于 2013-06-11T21:08:14.110 回答