powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Валидация JSON
6 сообщений из 6, страница 1 из 1
Валидация JSON
    #40082954
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Fortify Scanning ругается на безопасность, риск JSON-инъекции.
Как можно валидировать возвращаемый сервисом nominatim JSON, может есть какие-то шаблоны?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
function findAndFlyMapExt(val) {
    var myCars = new Array();
    myCars[0] = val;
    myCars[1] = "otherS";
    $.ajax({
        type: "POST",
        url: "main.aspx/FindObjectExt",
        data: JSON.stringify({ data: myCars }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        beforeSend: function () {
            $('.find_btn').css('background-image', "url('../Images/loader.gif')");
        },
        success: function (response) {
            var data = $.parseJSON(response.d);
            if (data.length === 0) {                
                var success = false;
                var uri = "https://nominatim.openstreetmap.org/?format=json&addressdetails=1&q=" + encodeURIComponent(val) + "&format=json&limit=3";
                var xmlHttp = new XMLHttpRequest();
                xmlHttp.open("GET", uri, false);
                xmlHttp.send(null);
                var json = $.parseJSON(xmlHttp.responseText);
                for (i = 0; i < json.length; i++) {
                    data.push({ X: json[i].lon, Y: json[i].lat, Label: json[i].display_name });
                }                        
                if (data.length === 0) {
                    alert("Ничего не найдено");
                }
                else {
                    success = true;
                    ShowSearchResults(data);
                }
                $.ajax({
                    type: "POST",
                    url: "main.aspx/FindAddressExt",
                    data: "{val: '" + val + "', success: " + success + "}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (results) {
                    }
                });
            }
            else
                ShowSearchResults(data);
        },
        complete: function () {
            $('.find_btn').css('background-image', "url('../Images/find.png')");
        }
    });
	
	function ShowSearchResults(data) {
         ...
    }
}



Ругается на строку var json = $.parseJSON(xmlHttp.responseText);
Nominatim возвращает примерно такие данные:
[{"place_id":245640412,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"way","osm_id":777836047,"boundingbox": ["54.7578891","54.7578987","32.0762585","32.0762892"],"lat":"54.7578987","lon":"32.0762892","display_name":"проспект Строителей, Тихвинка, Смоленск, Промышленный район, Смоленск, Смоленская область, Центральный федеральный округ, 214035, Россия","class":"highway","type":"secondary","importance":0.31,"address":{"road":"проспект Строителей","suburb":"Тихвинка","city":"Смоленск","city_district":"Промышленный район","state":"Смоленская область","region":"Центральный федеральный округ","postcode":"214035","country":"Россия","country_code":"ru"}},{"place_id":164886182,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"way","osm_id":316361084,"boundingbox": ["54.7569503","54.7571742","32.0732562","32.0739723"],"lat":"54.7570873","lon":"32.0736943","display_name":"проспект Строителей, Тихвинка, Смоленск, Промышленный район, Смоленск, Смоленская область, Центральный федеральный округ, 214019, Россия","class":"highway","type":"secondary","importance":0.31,"address":{"road":"проспект Строителей","suburb":"Тихвинка","city":"Смоленск","city_district":"Промышленный район","state":"Смоленская область","region":"Центральный федеральный округ","postcode":"214019","country":"Россия","country_code":"ru"}},{"place_id":165246198,"licence":"Data © OpenStreetMap contributors, ODbL 1.0. https://osm.org/copyright","osm_type":"way","osm_id":316360408,"boundingbox": ["54.7651937","54.7654031","32.0922171","32.0926436"],"lat":"54.7654031","lon":"32.0926436","display_name":"проспект Строителей, Киселёвка, Смоленск, Промышленный район, Смоленск, Смоленская область, Центральный федеральный округ, 214031, Россия","class":"highway","type":"secondary","importance":0.31,"address":{"road":"проспект Строителей","suburb":"Киселёвка","city":"Смоленск","city_district":"Промышленный район","state":"Смоленская область","region":"Центральный федеральный округ","postcode":"214031","country":"Россия","country_code":"ru"}}]
...
Рейтинг: 0 / 0
Валидация JSON
    #40083050
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aford
Ругается на строку
Код: javascript
1.
var json = $.parseJSON(xmlHttp.responseText);


Видать где-то есть информация, что разработчики этого метода накосячили...

Пробуй заменить на нативный вариант
Код: javascript
1.
var json = JSON.parse(xmlHttp.responseText);
...
Рейтинг: 0 / 0
Валидация JSON
    #40083055
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa, не помогает. Во всем проекте много JS-файлов как своих, так и "чужих", и везде по-разному. Где-то используется $.parseJSON, где-то JSON.parse, но critical warning указывает именно на эту функцию.
...
Рейтинг: 0 / 0
Валидация JSON
    #40083076
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aford , я просто с чего это предполагаю...
Когда через npm качаешь какие-либо модули/библиотеки, частенько нарываешься на такого рода предупреждения, де безопасность не та...
Запустите npm для анализа ситуации...

Начинаешь запускать и читать чего там не понравилось - а там описывается что де эта версия была как-то замечена в уязвимости регэкспа или каким-то инъекциям...

Может и твой случай аналогичен.

Суть ведь этих JSON-инекций в том, что если ты будешь его как-то "фривольно" обрабатывать - нарвешься на фигню.
Я читал статьи про эти инекции - полная белиберда. Только дураки или полные неумехи будут так обрабатывать данные json.
Но проблема в том, что те статьи пишут явно не хакеры.
Наверное они написали бы гораздо интереснее. И понятнее.
...
Рейтинг: 0 / 0
Валидация JSON
    #40083116
aford
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa, спасибо за развернутый ответ, но это проблемы не решило, нужно обработать json и все(
...
Рейтинг: 0 / 0
Валидация JSON
    #40083379
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в консоль ( console.log(response.d);) показывает что данные JSON ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Валидация JSON
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]