为什么eval中的eval不安全?

时间:2011-01-27 02:56:45

标签: javascript

  

可能重复:
  Why exactly is eval evil?

我读过人们声称当使用任意用户输入代码运行时,eval是不安全的。我在访问文件系统等服务器上运行的其他语言中理解这一点。但是,为什么在浏览器中执行代码时这很重要?毕竟,你不能只是启动Firebug并写任何你想要的任意脚本吗?那么eval又有何不同呢?

2 个答案:

答案 0 :(得分:19)

当你将alice编写的脚本提供给bob的浏览器到eval的用户bob时,eval的危险只会变得丑陋。

e.g。如果bob在你的页面上输入了他的密码,alice就可以在你eval编辑的用户输入中编写一个键盘记录器,并安排将数据编码在bob将(不知不觉)提交给alice的脚本中。正如@ Hunter2在评论中所暗示的那样,这是一次XSS攻击。

如果你没有为其他人服务,你认为它等同于开火萤火虫是正确的

答案 1 :(得分:2)

对于最偏执的执行eval = null;

不认为这是不安全的