JSON.parse()与eval()的区别

xiaoxiao2021-02-28  95

JSON.parse与eval和能将一个字符串解析成一个JSON对象,但还是有挺大区别。

出于安全考虑用json.parse,它会自动检测是否符合json格式。而eval不会检测是否符合格式,如果字符串中有js代码时,eval会一并执行,例如:

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JaneYork的博客——eval测试</title> </head> <body> <input type="button" value="测试" onclick="f()"> </body> <script type="text/javascript"> function f(){ /* eval("("+alert(123)+")"); */这里会弹框 var test = '{"b" : window.location.href="https://www.baidu.com" }';这里会跳转 eval("("+ test +")"); }; </script> </html>

详细理解JSON请看:一分三十秒理解JSON

,eval执行了js代码,跳转到第三方网站,很不安全。

如果不清楚格式的话,可以使用JSON格式在线校验

转载请注明原文地址: https://www.6miu.com/read-57708.html

最新回复(0)