String of Array (не JSON) проанализирован с помощью eval () - как обезопасить? - PullRequest
0 голосов
/ 06 июня 2018

Я получаю строку массива, содержащую объекты, через http-запрос.Я анализирую это с помощью eval ().

Так что я явно ожидаю массив obj после разбора.Как защитить эту процедуру eval (), кроме if (Array.isArray(parsedObj)) ...

Есть ли даже лучший способ, чем eval ()?

Это часть строки (обратите внимание, что это неJSON):

    [
        ["2018-06-06", "2018-06-07", "2018-06-08", "2018-06-09", "2018-06-10", "2018-06-11", "2018-06-12", "2018-06-13", "2018-06-14", "2018-06-15", "2018-06-16"], 
        {
            "2018-06-10": {
                checkFirstOrLastOfMonth: 0,
                day: "10",
                dayOfWeek: "SONNTAG",
                formatedDate: "10 Jun 2018",
                monthNo: "06",
                shortMonthName: "Jun",
                weekOfYear: 24,
                year: "2018"
            },
            "2018-06-11": {
                checkFirstOrLastOfMonth: 0,
                day: "11",
                dayOfWeek: "MONTAG",
                formatedDate: "11 Jun 2018",
                monthNo: "06",
                shortMonthName: "Jun",
                weekOfYear: 24,
                year: "2018"
            },
            "2018-06-09": {
                checkFirstOrLastOfMonth: 0,
                day: "09",
                dayOfWeek: "SAMSTAG",
                formatedDate: "09 Jun 2018",
                monthNo: "06",
                shortMonthName: "Jun",
                weekOfYear: 23,
                year: "2018"
            },
    ...

1 Ответ

0 голосов
/ 06 июня 2018

Вместо eval () используйте https://www.npmjs.com/package/json5

для разбора расслабленной JSON-подобной строки в js obj / arr

npm install json5 --save

_

const JSON5 = require('json5');

let obj = JSON5.parse(obj_str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...