在孤立环境中使用eval()
Using eval() in isolated environment
是否有可能使用eval()
来评估JavaScript代码并确定该代码将无法访问某些对象?
例子:
(function(window, location){ eval('console.log(window, location)'); })()
上面的代码似乎没有通过引用直接访问window
对象,因为它在该作用域中是undefined
。但是,如果全局存在另一个对象,并且它包含对window
的引用,那么它将是可访问的。
如果我向window, location
添加任何其他对象或变量,可能包含对window
的引用,那么计算的代码是否能够引用window
对象?
我试图创建一个平台,用户应用程序可以上传与js文件和访问特定的api将以权限的形式给出。
在JavaScript中,任何全局调用的函数(即不在对象上)都将其this
参数设置为全局对象(在浏览器中是窗口)。那么这个片段:
(function(window, lovation) { eval('(function () { console.log(this) })()'); })()
打印当前窗口对象
相关文章:
- 递归使用 eval() 是检查程序执行的好方法吗?
- 为什么忽略了eval()代码中的语法错误
- 难以访问的JS环境中的语法错误
- 推荐在JavaScript中执行存储为字符串的函数,而不是使用eval
- 键入环境安装不起作用
- Javascript eval()无法处理传递的字符串
- 在node.js中设置Apache环境变量
- 调用绕过eval()的函数
- Semi-sandboxing Javascript eval
- ES6 模板文字是否比 eval 更安全
- JavaScript 可以在这里使用 eval 吗?
- 能够在指向本地环境的浏览器中设置JavaScript断点
- Rally SDK外部开发Rally环境未定义
- 如何使用uglifyjs/uglifyjs2解析walk和eval javascript表达式
- 如何在词法环境中管理块范围
- 可以'无法正确访问NODE_ENV环境变量,这是NODE.js的错误吗
- 如何使用其他地方指定的访问信息访问嵌套的json对象,而不使用eval或迭代
- 当eval只执行服务器端数据时,在javascript中使用eval是否安全
- 使用eval()定义变量显示未定义的错误
- 在孤立环境中使用eval()