Я использую приведенный ниже код, который правильно очищает 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
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение