每个人都说 JS 中的 eval() 函数很糟糕。
实际上我是这样使用它的:
eval("document.getElementById('toto').value");
在我看来,即使用户在“toto”元素中发送恶意输入,这也是安全的。
你能确认一下吗?(我不想让我的应用程序存在漏洞)。
每个人都说 JS 中的 eval() 函数很糟糕。
实际上我是这样使用它的:
eval("document.getElementById('toto').value");
在我看来,即使用户在“toto”元素中发送恶意输入,这也是安全的。
你能确认一下吗?(我不想让我的应用程序存在漏洞)。
首先,正如 Juhana 在评论中指出的那样:
eval("document.getElementById('toto').value");
只是不必要的使用eval
,它等同于
document.getElementById('toto').value;
现在,没有引号:
eval(document.getElementById('toto').value);
...它将评估“toto”中input
的任何代码。id
假设这就是你的意思:
执行某人输入的代码似乎有点奇怪input
,但只要你对三件事没问题,那很好。这三件事是:
eval
将执行该输入中的任何代码。既然用户把它放在那里,赔率是相当不错的(至少,这是一个“用户当心”的情况)。
eval
启动一个完整的 JavaScript 解析器。现在,在比眨眼更快的现代浏览器上,所以......
eval
将在你调用它的上下文中执行你给它的代码,这使得它甚至可以访问该上下文中的局部变量。
“eval
是邪恶的”口头禅与eval
不必要的使用有关,就像人们有时会做的那样(例如你看到eval("obj." + nameOfProperty)
的),以及在你无法控制的内容上使用它。