JSON.parse与val()如何使用?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我的Spider Sense警告说,使用eval()解析传入的JSON是一个坏主意。我只是想知道JSON.parse()- 我认为是JavaScript的一部分,而不是浏览器特定的功能 - 是否更安全。

提问于
用户回答回答于

如果使用eval以下内容,更容易受到攻击:JSON是Javascript的一个子集,json.parse只是解析JSON,而eval对所有JS表达式都是开放的。

用户回答回答于

所有JSON.parse实现最有可能使用eval()

JSON.parse基于Douglas Crockford的解决方案,该解决方案eval()497线上使用。

// In the third stage we use the eval function to compile the text into a
// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
// in JavaScript: it can begin a block or an object literal. We wrap the text
// in parens to eliminate the ambiguity.

j = eval('(' + text + ')');

其优点JSON.parse是验证参数是正确的JSON语法。

扫码关注云+社区