gpt4 book ai didi

javascript - Esprima 检测全局范围访问

转载 作者:行者123 更新时间:2023-11-30 14:47:01 25 4
gpt4 key购买 nike

是否有可能使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com