Protect users from potential error message text injection via url

This commit is contained in:
ilyaigpetrov 2019-08-11 21:34:58 +05:00
parent 2ba422dde7
commit faae7c6d4a

View File

@ -18,6 +18,7 @@
return;
}
let fromPageHref = '';
let toUrlHref = '';
let fromPageHtml = '';
let youMayReportHtml = '';
const initiator = details.initiator !== 'null' && details.initiator;
@ -26,12 +27,13 @@
fromPageHref = new URL(initiator).href; // Sanitize: only urls, not other stuff.
fromPageHtml = ` со страницы ${urlToA(fromPageHref)}`;
}
toUrlHref = new URL(details.url).href;
youMayReportHtml = ` Вы можете <b>${'сообщить об ошибке'.link(
encodeURIComponent(
'/pages/report-proxy-error/index.html?' +
new URLSearchParams({
fromPageHref,
requestFailedTo: new URL(details.url).href,
requestFailedTo: toUrlHref,
}),
),
)}</b> администратору прокси.`;
@ -51,7 +53,7 @@
const popup = `${popupPrefix}${urlToA(details.url)}${fromPageHtml}</span>. Это могло быть намеренно или по ошибке.${youMayReportHtml}#tab=exceptions`;
if (tabId < 0) {
throw new Error(`Вы выйграли экзотичную ошибку! Пожалуйста, сообщите нам о ней вместе с адресами ${details.url} и ${fromPageHref}.`);
throw new Error(`Вы выйграли экзотичную ошибку! Пожалуйста, сообщите нам о ней вместе с адресами ${toUrlHref} и ${fromPageHref}.`);
}
chrome.browserAction.setPopup({
tabId,