`
mengtaohj
  • 浏览: 22694 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

json.parse()和eval的区别

    博客分类:
  • js
 
阅读更多

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()则不必担心这个问题。

分享到:
评论

相关推荐

    JSON2.JS JSON.JS JSON_PARSE.JS

    json_parse.js: This file contains an alternative JSON parse function that uses recursive descent instead of eval. json_parse_state: This files contains an alternative JSON parse function that uses a ...

    JSON中key动态设置及JSON.parse和JSON.stringify()的区别

    本文给大家介绍JSON中key动态设置及JSON.parse和JSON.stringify()的区别讲解,具体详情如下所示: var user_info_json = []; user_info_json[user_info_json.length] = eval('('+ '{'+ id +': '+ value +'}' +...

    JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析

    主要介绍了JSON在Javascript中的使用以及eval和JSON.parse的区别详细解析,本文对eval()和JSON.parse()的区别介绍的非常详细,需要的朋友可以参考下

    javascript中JSON.parse()与eval()解析json的区别

    主要介绍了javascript中JSON.parse()与eval(...解析json的区别,详细描述了json格式数据的操作技巧,并结合实例形式对比分析了使用JSON.parse()与eval()解析json的区别,需要的朋友可以参考下

    转义字符(\)对JavaScript中JSON.parse的影响概述

    按照ECMA262第五版中的解释,JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象。json标准参考<a>json.org。(其实将符合json...

    深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解

     今天在这里笔者想简单谈谈jquery里面的JSON.parse()和JSON.stringify()函数,顺便还会提一下原生JS里面的eval()函数 (1)JSON.parse 函数 作用:将 JavaScript 对象表示法 (JSON) 字符串转换为对象。 

    javascript-stringify:将Stringify更改为eval,将JSON.stringify更改为JSON.parse。

    字符串化是eval作为JSON.stringify是JSON.parse 。 安装 npm install javascript-stringify --save 用法 import { stringify } from "javascript-stringify" ; 该API与JSON.stringify类似: value转换为字符串的...

    json2 json

    parse.js:该文件包含替代JSON的parse函数thatuses递归下降而不是eval.json_parse_state.js:此文件包含替代JSON的parse函数thatuses状态机器代替eval.cycle.js:这个文件包含了两个函数,JSON.decycle和JSON....

    json的介绍 以及 json2.js的用法

    JSON parse解析器只能辨识JSON文本,拒绝所有脚本。提供了本地JSON支持的浏览器的JSON解析 器将远快于eval函数。预计未来的ECMAScript标准将支持本地JSON。 使用格式: var myObject = JSON.parse(myJSONtext, ...

    json字符串和js对象之间的转换

    json字符串和js对象之间的转换,包括eval、parseJSON函数、JSON.parse、$.toJSON、$.parseJSON、复杂的json格式对象使用,让你一分钟理解json的那些事

    jsenv-uneval:将值转换为可评估的字符串

    使用@jsenv/uneval + eval比JSON.stringify + JSON.parse更强大,更准确。 它支持圆形结构,并保留Date , Infinity , -0 , BigInt等类型。 但是JSON.stringify更快并且更安全(它无法执行任意代码)。 因此,在...

    json基础+实例5(最后几个函数哈parse stringify eval)加油(后面是实例了哈)

    //记住,parse是字符串转换成对象,所以要先写出字符串 var str=’{“name”:“黄菊华”,“dizhi”:“浙江杭州”}’; 记住stringify函数是对象转换成字符串,所以先写出对象 var obj1={“xing”:“黄”,“ming”:...

    JS中对象与字符串的互相转换详解

    在使用 JSON2.JS 文件的 JSON.parse(data) 方法时候,碰到了问题: throw new SyntaxError(‘JSON.parse’); 查询资料,大概意思如下: JSON.parse方法在遇到不可解析的字符串时,会抛出SyntaxError异常。 即:JSON....

    json2 js json格式处理包

    parse方法使用eval方法进行解析,并使用几个正则表达式对其进行保护意外的代码执行风险。在当前的浏览器上,这个文件什么都不做,更喜欢内置的JSON对象。没有理由使用这个文件,除非命运迫使你支持IE8,这是没有人...

    js解析与序列化json数据(一)json.stringify()的基本用法

    JSON对象有两个方法:stringify()和parse()。在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript。例如: 新建一个HTML:代码如下: 代码如下: <...

    使用sessionStorage保存与获取json对象

    将json对象使用JSON.stringify(JsonObject)方式转换...然后从 sessionStorage或localStorage 中取出对应的字符串,使用eval或JSON.parse将字符串转换为json对象。其中使用eval做转换时,需要在字符串的前后加入"("和")

    Ajax中解析Json的两种方法对比分析

    JSON.parse(); //推荐方法 一、两种方法的区别 我们先初始化一个json格式的对象:  var jsonDate = '{ "name":"周星驰","age":23 }'  var jsonObj = eval( '(' + jsonDate + ')' ); // eval();...

Global site tag (gtag.js) - Google Analytics