json.parse()和eval的区别

json.parse()可以将字符串转换成对象。但是eval同样也可以。这样就让我们有所疑问了,他们有什么区别哪?

那就让小白给你们讲解一下。

第一:eval是不安全的。如果恶意的用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,

第二:erval什么字符串都可以解析,这样是不好的吧。。。自己想想就知道为什么不好了。

总结:

JSON.parse()之可以解析json格式的数据,并且会对要解析的字符串进行格式检查,如果格式不正确则不进行解析,而eval()则可以解析任何字符串,eval是不安全的。

 比如下面的字符串:

var str ='alert(1000.toString())';eval(str);
JSON.parse(str);

用eval可以解析,并且会弹出对话框,而用JSON.parse()则解析不了。 其实alert并没有什么坏处,可怕的是如果用恶意用户在json字符串中注入了向页面插入木马链接的脚本,用eval也是可以操作的,而用JSON.parse()则不必担心这个问题。

你可能感兴趣的:(parse)