Shn*_*ick 6 javascript security eval function
我在 MDN 上读到相关内容eval,它似乎表明一种“更好”的替代方案eval是使用函数构造函数。MDN 似乎强调,与以下方式相比,使用函数构造函数的安全风险较小eval:
第三方代码可以看到调用 eval() 的范围,这可能会导致类似 Function 不易受到攻击的攻击。
“第三方代码可以查看调用 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
})();Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2453 次 |
| 最近记录: |