所以古老的标准是使用 Eval 是不好的,因为它会导致重大的安全问题;特别是在您正在评估可能来自用户输入的某些情况下。这是 100% 有意义的,而且我在避免使用 Eval 时从来没有遇到过任何问题。不过,我最近遇到了一个奇怪的情况,这让我对这类事情的看法有点不同。
我写了一个类似的 JS 函数:
function someFun(param, callback) {
bool = someOtherFun(param);
if(bool)
callback();
else
return false;
}
这被精简了很多,但原理是一样的:它调用另一个函数,并根据它的返回值执行作为参数提供的函数,或者返回 false。不过,这让我想到,在 F12 中使用 JS 控制台可以像 Eval(txtbox.value) 一样容易地利用这种东西。这有关系吗?
在这个 F12 的世界里,在我看来,Eval 是我们最不担心的事情。任何知道什么是注入攻击的人都可能知道 F12 是什么。我错了吗?