我正在读关于eval在 MDN 上,它似乎表明有点"better"替代eval
是使用一个函数构造器。 MDN 似乎强调,与使用函数构造函数相比,使用函数构造函数的安全风险较小eval
as:
第三方代码可以看到调用 eval() 的范围,
这可能会导致类似的攻击方式
功能不受影响。
- MDN
到底是做什么的“第三方代码可以看到调用 eval() 的范围”它是什么意思以及它如何影响我的 JS 应用程序的安全性?
来自 MDN 页面:
然而,与 eval 不同的是,Function 构造函数创建的函数仅在全局范围内执行。
如果将所有代码包装在闭包中,则无法从计算的函数体中访问秘密对象。
(() => {
let secret = 42;
eval("console.log(secret)"); // 42
let fn = new Function("console.log(secret)");
fn(); // secret is not defined
})();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)