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