gpt4 book ai didi

javascript - 评估与 Web 控制台

转载 作者:行者123 更新时间:2023-11-30 20:14:24 26 4
gpt4 key购买 nike

如果你评估用户生成的代码,我总是听到和读到“Eval is evil”。

但是与在 Web 控制台中键入代码有何不同?还有哪些选择?

我知道网络上充满了像我这样的问题。但是我无法理解我读到的内容,对不起。如果你能帮助我,那就太好了。我记得我读过一些关于作用域的内容,那么 eval() 和 Web 控制台有不同的作用域吗?如果是,为什么这会使 Web 控制台更安全?

感谢您的建议!
达斯·穆恩

编辑:为什么通过 Web 控制台/通过 eval 传递代码是危险的?我虽然 js 将在客户端执行?

最佳答案

在其中执行代码都不安全;两者都可能导致 XSS 攻击。
在这方面,Web 控制台与评估代码一样容易受到攻击。

但是,它们确实有不同的范围。

eval() 根据调用方式在全局范围或局部范围内工作:

If you use the eval function indirectly, by invoking it via a reference other than eval, as of ECMAScript 5 it works in the global scope rather than the local scope. This means, for instance, that function declarations create global functions, and that the code being evaluated doesn't have access to local variables within the scope where it's being called.

Web 控制台在页面窗口范围内执行代码。

值得注意的是,浏览器控制台 has a different scope Web 控制台,在浏览器的 chrome 窗口下运行:

Similarly, you can execute JavaScript expressions using the Browser Console. But while the Web Console executes code in the page window scope, the Browser Console executes them in the scope of the browser's chrome window.

关于javascript - 评估与 Web 控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52069652/

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