有没有一种安全的方法来使用JavaScript验证JSON输入?

时间:2011-03-19 22:08:51

标签: javascript windows security json validation

我从Windows 7小工具中提取一些外部JSON数据,这基本上是在具有高安全性权限的Internet Explorer下运行的一段JavaScript。因此,我想确保JSON格式正确并且不是恶意的。

这样做的好方法是什么?

2 个答案:

答案 0 :(得分:2)

JSON是JavaScript。因此,您可以像验证JavaScript一样静态验证JSON。您担心通常可用于验证JavaScript的eval方法,并且您非常明智地避免使用此方法。如果它是恶意的并且你执行验证,那么你已经搞砸了。 JSLint是一个很好的工具。有关如何“离线”使用此实用程序的信息,请参阅Stack Overflow问题 Is JSLint available for offline use?

另一种方法是使用json2.js。此方法正确解析包含的JSON 功能,所以要注意这个警告。

答案 1 :(得分:1)

使用JSON.parse(jsonString);。这将构建数组和对象,但不会在JSON中运行任何代码。要支持没有HTML5 JSON对象的旧浏览器,请使用json2.js,它通过在eval() JSON之前检查无效数据,使用相同的API提供相同的保护。