有没有一种安全的方法可以用JavaScript验证JSON输入?
我从一个Windows7小工具中提取一些外部JSON数据,它基本上是在InternetExplorer下运行的一段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
做这件事的好方法是什么?JSON是JavaScript。因此,可以像验证JavaScript一样静态验证JSON。您关心的是通常可用于验证JavaScript的
eval
方法,您非常明智地避免了这种方法。如果它是恶意的,并且您执行验证,那么您已经完蛋了。这是一个很好的工具。请参阅StackOverflow问题,了解如何“脱机”使用此实用程序
另一种方法是使用。此方法不会正确解析包含
函数,所以请注意这个警告。使用
JSON.parse(jsonString)代码>。这将构建数组和对象,但不会在JSON中运行任何代码。要支持没有HTML5 JSON对象的旧浏览器,请使用它,通过在eval()
ing JSON之前检查无效数据,使用相同的API提供相同的保护。只要在验证期间不尝试执行任何操作,就可以了。不要使用代码执行来测试有效性(即,如果它运行,它就是有效的;否则就不是)。只需使用json2.js