- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有可能使用 esprima(或其他类似工具)100% 检测一段不受信任的代码是否试图访问它运行的函数范围之外的变量?
window.foo = 5
var func = new Function('"use strict"; console.log(foo);')
func.call(null)
这将记录 5。我可以防止 this 在函数中使用 func.call(null) 并在不受信任的代码前加上“use strict”。
我假设我也可以使用 esprima 或什至 eslint 分析代码并检测 func svope 中不存在的变量,对吗?它是 100% 安全的吗?我知道代码仍然可能行为不端,例如执行 while(true){},但除了长时间运行的代码之外,它是否“范围安全”?
最佳答案
I assume I could also analyze the code with esprima, or even eslint and detect the variables that don't exist in the func scope, am I right?
是的。
Is it 100% secure?
不,一点也不。考虑 new {}.constructor.constructor("alert('evil!')")()
,它不访问任何变量。
关于javascript - Esprima 检测全局范围访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48748584/
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
是否有可能使用 esprima(或其他类似工具)100% 检测一段不受信任的代码是否试图访问它运行的函数范围之外的变量? window.foo = 5 var func = new Function(
我正在尝试用 JavaScript 开发一个抽象语法树程序。我正在使用 Jet brains IDE 进行开发。当我运行该程序时,出现错误找不到模块 esprima。 nodejs 设置完美,我认为它
我的 npm 项目将 esprima-six npm 模块作为传递依赖项。最近,它变得无法下载,如 npm install 的以下输出所示: npm ERR! 404 Not Found npm ER
我正在使用 escodegen 在我的语句中添加结束代码,如下所示。在 leave 方法中,我在语句末尾附加了一个 .toArray() 调用。 const esprima = require('es
这个问题在这里已经有了答案: Using await outside of an async function (4 个答案) 关闭 4 年前。 无法获取 esprima 4.0.1 解析器与“等待
好吧,我环顾四周,在网上找不到任何有关此错误的信息。 我正在尝试运行 Browserify: 浏览应用程序/main.coffee -w -o public/client_bundle.js 它正在生
开发人员创建了一个非常简单的程序: var a = 6; var b = 7 console.log(a * b); 我想确保开发人员使用分号,因为我不相信所有开发人员都知道所有 ASI规则。由于我将
我的理解是“在计算机技术中,解析器是一个程序,通常是编译器的一部分,它以顺序源程序指令、交互式在线命令、标记标签或其他定义的接口(interface)的形式接收输入,并将它们分解成部分(例如,名词(对
我能够使用 Esprima 和 Acorn 解析箭头函数,但使用普通函数会出现错误: const esprima = require('esprima'); const acorn = require
我使用 Esprima.Net ( https://github.com/Diullei/Esprima.NET ) 从 JavaScript 代码中获取 AST(抽象语法关键字)。它返回 List包
我正在使用 r.js 将几个 js 文件优化为一个文件。它以前工作正常。最近修改了一些js代码,添加代码为: var x = 08; 然后显示 ERROR:parse error using espr
目前我正在开发一个解析 Haskell 语言的 JavaScript 解析器。我正在研究 Esprima.JS 并希望在它之上构建解析 Haskell 语言。根据我的理解,我需要从一个基本的开始部分这
我是一名优秀的程序员,十分优秀!