2011-01-27 145 views
14

可能重复:
Why exactly is eval evil?为什么在JavaScript中eval不安全?

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

+1

'的eval() `可能是XSS攻击媒介,如果你不小心 – PaoloVictor 2011-01-27 03:01:47

+1

请进一步解释 – 2011-01-27 03:04:45

回答

19

eval的危险只会在你服务由爱丽丝向用户bob为bob的浏览器评估的脚本提供丑陋的头时。

例如如果bob在你的页面上输入他的密码,alice可以在你输入的用户输入中编写一个键盘记录器,并将数据编码成一个脚本,以便bob将(不知不觉)提交给爱丽丝。正如@Hunter2在评论中提到的那样,这是XSS攻击。

如果没有投放到其他人,你是在假设它相当于发射了萤火虫

正确
2

不认为这是不安全的,为最偏执的执行eval = null;

相关问题