我执行这个任意js代码的唯一要求是不暴露某些全局变量/函数(例如setInterval
)。
我当前的策略涉及解析js代码并为每个全局引用进行var
声明(在封闭闭包的开头)。
我想知道是否还有其他明显的解决方法。
另外,为了澄清,这个任意代码不会像eval
那样运行。相反,它被包装在一个闭包内并附加到基本代码。
答案 0 :(得分:1)
其中一个选项是通过提供自己的函数或变量来覆盖全局变量。例如:
window.alert = function(){
//你的代码到这里了 //如果需要,可以选择调用window.alert }
如果你想要隐藏一些小的有限列表,这应该是可管理的。这将使它们全局不可用。