Я использую приведенный ниже код, который правильно очищает URL-адрес.
Но все равно я продолжаю получать Исключение Sonar «Измените этот код, чтобы не создавать URL-адрес из контролируемых пользователем data."
Строка await fetch(sanitizedURL, options) выдает исключение Sonar.
Я пробовал if(!sanitizedCode) {выбросить ошибку .. но он тоже не работает.
Какие изменения необходимы в приведенном ниже коде, чтобы решить проблему?
function sanitizeURL(inputURL) {
try {
const parsedURL = new URL(inputURL);
const domainsList = [inputURL];
if (!schemesList.includes(parsedURL.protocol)) {
throw new Error('Invalid URL scheme');
}
if (!domainsList.some(domain => domain.includes(parsedURL))) {
throw new Error("URL not in allowed list");
}
return parsedURL.toString();
} catch (error) {
console.log("Caught error: ", error);
throw error;
}
}
async function fetchWithCheck(url, options = {}, responseType = "json", errorMessage = null) {
let data;
try {
const sanitizedURL = sanitizeURL(url);
const response = await fetch(sanitizedURL, options);
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
switch (responseType) {
case "json":
data = await response.json();
break;
default:
throw new Error(`Unsupported response type: ${responseType}`);
}
return data;
} catch (error) {
console.log(logMessage, error);
const newError = new Error("problem fetching data");
newError.cause = error;
throw newError;
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... olled-data
Ошибка выдачи NodeJS «URL-адрес из данных, контролируемых пользователем» ⇐ Javascript
Форум по Javascript
1737138076
Anonymous
Я использую приведенный ниже код, который правильно очищает URL-адрес.
Но все равно я продолжаю получать [b]Исключение Sonar «Измените этот код, чтобы не создавать URL-адрес из контролируемых пользователем data."[/b]
Строка await fetch(sanitizedURL, options) выдает исключение Sonar.
Я пробовал if(!sanitizedCode) {выбросить ошибку .. но он тоже не работает.
Какие изменения необходимы в приведенном ниже коде, чтобы решить проблему?
function sanitizeURL(inputURL) {
try {
const parsedURL = new URL(inputURL);
const domainsList = [inputURL];
if (!schemesList.includes(parsedURL.protocol)) {
throw new Error('Invalid URL scheme');
}
if (!domainsList.some(domain => domain.includes(parsedURL))) {
throw new Error("URL not in allowed list");
}
return parsedURL.toString();
} catch (error) {
console.log("Caught error: ", error);
throw error;
}
}
async function fetchWithCheck(url, options = {}, responseType = "json", errorMessage = null) {
let data;
try {
const sanitizedURL = sanitizeURL(url);
const response = await fetch(sanitizedURL, options);
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
switch (responseType) {
case "json":
data = await response.json();
break;
default:
throw new Error(`Unsupported response type: ${responseType}`);
}
return data;
} catch (error) {
console.log(logMessage, error);
const newError = new Error("problem fetching data");
newError.cause = error;
throw newError;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79365762/nodejs-throwring-error-url-from-user-controlled-data[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия