前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSON.parse()与eval()的区别

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

作者头像
JaneYork
发布2023-10-11 13:50:36
2140
发布2023-10-11 13:50:36
举报

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

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

代码语言:javascript
复制
<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代码,跳转到第三方网站,很不安全。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档