【发布时间】:2016-12-27 18:17:46
【问题描述】:
developer.mozilla.org 说:
不要不必要地使用 eval ! eval() 是一个危险的函数,它 以调用者的权限执行它传递的代码。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval
例如,任何恶意用户都可以打开 chrome 调试器,并修改正在执行的 javascript 代码。这样他就可以把自己的功能执行等等。
一般来说有没有“安全的javascript代码”之类的东西?
【问题讨论】:
-
不。一切都和其他一切一样安全,这对于周围的所有调试工具来说基本上是不安全的。就个人而言(而且我可能会因为这样说而被踢到牙齿上,但是......)我并不害怕 eval(或 Function)。
-
任何恶意用户都可以打开控制台并修改他们自己的代码版本,因此不会影响其他任何人。如果你不顾一切地使用
eval,那么恶意代码可以在任何用户的计算机上运行。 -
对我来说,它是一个工具。只是不要使用用户给你的任何纯文本,你可以使用 eval 就好了。但这适用于任何事情,任何语言。用户可以将奇怪的东西放入表单并提交。来自用户的任何东西都必须在使用前进行消毒,否则会受到 XSS 攻击。
-
不要忘记 eval 的高性能成本。在代码中使用 eval 会阻止浏览器引擎对代码进行任何优化,从而影响整个页面的速度。
-
@AhmadBamieh:是的。不适合游戏循环。 ;P
标签: javascript security eval