我读过人们声称当使用任意用户输入代码运行时,eval是不安全的。我在访问文件系统等服务器上运行的其他语言中理解这一点。但是,为什么在浏览器中执行代码时这很重要?毕竟,你不能只是启动Firebug并写任何你想要的任意脚本吗?那么eval又有何不同呢?
答案 0 :(得分:19)
当你将alice编写的脚本提供给bob的浏览器到eval的用户bob时,eval
的危险只会变得丑陋。
e.g。如果bob在你的页面上输入了他的密码,alice就可以在你eval
编辑的用户输入中编写一个键盘记录器,并安排将数据编码在bob将(不知不觉)提交给alice的脚本中。正如@ Hunter2在评论中所暗示的那样,这是一次XSS攻击。
如果你没有为其他人服务,你认为它等同于开火萤火虫是正确的
答案 1 :(得分:2)
eval = null;
,不认为这是不安全的