Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 使用eval()解析的数组字符串(不是JSON)-如何保护?_Javascript_Json_Node.js_Security_Parsing - Fatal编程技术网

Javascript 使用eval()解析的数组字符串(不是JSON)-如何保护?

Javascript 使用eval()解析的数组字符串(不是JSON)-如何保护?,javascript,json,node.js,security,parsing,Javascript,Json,Node.js,Security,Parsing,Im通过http请求接收包含对象的数组字符串。我用eval()解析它 因此,我显然希望解析后会有一个数组obj。除了if(Array.isArray(parsedObj))… 还有比eval()更好的方法吗 这是字符串的一部分(请注意,它不是JSON): 而不是eval()使用 将类似该字符串的放松JSON解析为js obj/arr npm install json5 --save _ 切勿使用eval。那就编写自己的解析器吧。为什么不让它成为有效的JSON呢?修复HTTP API。解析后检查

Im通过http请求接收包含对象的数组字符串。我用eval()解析它

因此,我显然希望解析后会有一个数组obj。除了
if(Array.isArray(parsedObj))…

还有比eval()更好的方法吗

这是字符串的一部分(请注意,它不是JSON):

而不是eval()使用

将类似该字符串的放松JSON解析为js obj/arr

npm install json5 --save
_


切勿使用
eval
。那就编写自己的解析器吧。为什么不让它成为有效的JSON呢?修复HTTP API。解析后检查最外层表达式的类型不会使任何事情变得更安全。@Beri:修复API不是我的事,不幸的是…JSON5提供了在JSON中不可能实现的扩展规则集。例如,数字可以是NaN。这是可取的吗?有多个包以更松散的方式解析JSON,但不做任何增强,如
npm install json5 --save
const JSON5 = require('json5');

let obj = JSON5.parse(obj_str);