Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种安全的方法可以用JavaScript验证JSON输入?_Javascript_Windows_Security_Json_Validation - Fatal编程技术网

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

有没有一种安全的方法可以用JavaScript验证JSON输入?,javascript,windows,security,json,validation,Javascript,Windows,Security,Json,Validation,我从一个Windows7小工具中提取一些外部JSON数据,它基本上是在InternetExplorer下运行的一段JavaScript,具有高度的安全特权。因此,我想确保JSON的格式正确,没有恶意 做这件事的好方法是什么?JSON是JavaScript。因此,可以像验证JavaScript一样静态验证JSON。您关心的是通常可用于验证JavaScript的eval方法,您非常明智地避免了这种方法。如果它是恶意的,并且您执行验证,那么您已经完蛋了。这是一个很好的工具。请参阅StackOverfl

我从一个Windows7小工具中提取一些外部JSON数据,它基本上是在InternetExplorer下运行的一段JavaScript,具有高度的安全特权。因此,我想确保JSON的格式正确,没有恶意


做这件事的好方法是什么?

JSON是JavaScript。因此,可以像验证JavaScript一样静态验证JSON。您关心的是通常可用于验证JavaScript的
eval
方法,您非常明智地避免了这种方法。如果它是恶意的,并且您执行验证,那么您已经完蛋了。这是一个很好的工具。请参阅StackOverflow问题,了解如何“脱机”使用此实用程序

另一种方法是使用。此方法不会正确解析包含
函数,所以请注意这个警告。

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

只要在验证期间不尝试执行任何操作,就可以了。不要使用代码执行来测试有效性(即,如果它运行,它就是有效的;否则就不是)。只需使用json2.js