保护javascript环境的最佳方法是什么?

保护javascript环境的最佳方法是什么?,javascript,html,security,environment,emulation,Javascript,Html,Security,Environment,Emulation,我正在开发一款HTML5游戏,作为其中一项功能,我希望更高级的用户能够用javascript编写短脚本,这些脚本可以由游戏中的对象运行。问题是,我想限制玩家脚本可以做什么,这样他们就不能打开新窗口、作弊、修改游戏的性质等等。然而,我想向脚本公开某些方法,这样他们就可以做出有用的事情 一些人建议我可以和网络工作者一起做这件事。其他人告诉我,要做到这一点,我需要在javascript中构建一个解释器。显然,我不能只使用eval,那么我如何才能做到这一点?如果有“最好”的方法,那么最好的方法是什么?您

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


一些人建议我可以和网络工作者一起做这件事。其他人告诉我,要做到这一点,我需要在javascript中构建一个解释器。显然,我不能只使用eval,那么我如何才能做到这一点?如果有“最好”的方法,那么最好的方法是什么?

您不需要创建沙盒,Javascript已经为您完成了这项工作


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

您不应该需要创建沙盒,Javascript已经为您完成了这项工作


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

也许您会觉得这很有帮助:。谁会运行这些脚本:只有一个用户还是多个用户?dandavis,某些玩家组可以运行某些脚本。我希望这一切都能互操作。菲利克斯,太好了。这正是我需要的。也许你会觉得这很有帮助:。谁会运行这些脚本:只有一个用户还是多个用户?dandavis,某些玩家组可以运行某些脚本。我希望这一切都能互操作。菲利克斯,太好了。这正是我需要的。