15
沙盒JavaScript是否可以在浏览器中运行?
我想知道是否有可能对浏览器中运行的JavaScript进行沙盒化,以防止访问通常在HTML页面中运行的JavaScript代码可用的功能。 例如,假设我想为最终用户提供一个JavaScript API,以便让他们定义在发生“有趣的事件”时要运行的事件处理程序,但是我不希望那些用户访问该window对象的属性和功能。我能做到吗? 在最简单的情况下,假设我要阻止用户致电alert。我可以想到的几种方法是: 重新定义window.alert全局。我认为这不是一种有效的方法,因为页面中运行的其他代码(即用户未在其事件处理程序中编写的内容)可能要使用alert。 将事件处理程序代码发送到服务器进行处理。我不确定将代码发送到服务器进行处理是否正确,因为事件处理程序需要在页面的上下文中运行。 服务器处理用户定义的函数然后生成要在客户端上执行的回调的解决方案也许可行?即使该方法可行,还有更好的方法来解决此问题?
142
javascript
browser
sandbox