Как не запустить строгую политику безопасности Firefox по моему расширениюJavascript

Форум по Javascript
Ответить
Anonymous
 Как не запустить строгую политику безопасности Firefox по моему расширению

Сообщение Anonymous »

в настоящее время вкладываю вклад в расширение, и основная проблема заключается в том, что в Firefox запускается CSP, что вызывает довольно много проблем. В основном, кажется, это блокирует инъекцию динамических CSS, что, как я думал, я удалил, хотя он все еще запускается. Просто для справки, веб -сайт, на который я нацелен, является Modrinth. Это репо.

Код: Выделить всё

document.onreadystatechange = function () {
const projectRegex =
/^https?:\/\/modrinth\.com\/(?:project|mod|resourcepack|shader|datapack|modpack)\/([^\/]+)/;
const projectIdTest = projectRegex.exec(window.location.href);
const projectId =
projectIdTest != null && projectIdTest.length > 1 ? projectIdTest[1] : null;
if (projectId !== null) {
runBanner(projectId);
return;
}
pageSupportsBanners = false;
};

useNuxtApp()._middleware.global.push(function handleRoute(to, from) {
if (to.name.startsWith("type-id")) {
const { id } = to.params;
console.log("entering project", id);
runBanner(id);
} else if (from.name.startsWith("type-id")) {
const { id } = from.params;
//console.log("leaving project", id);
const containers = document.getElementsByClassName("banner-container");
for (let container of containers) {
document.body.removeChild(container);
}
pageSupportsBanners = false;
}
});

let pageSupportsBanners = false;
const fallbackimage =
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAnSURBVHhe7cEBDQAAAMKg909tDjcgAAAAAAAAAAAAAAAAAAAA4FwNQEAAAQtzTh0AAAAASUVORK5CYII=";
let banner = fallbackimage;

async function runBanner(id) {
console.log("runBanner called with id:", id);
pageSupportsBanners = true;
const apibase = "https://api.modrinth.com/v3/project/";

try {
const response = await fetch(apibase + id);
if (!response.ok) {
console.error("blueRinth: Response failed during banner loading.");
return;
}
const data = await response.json();
console.log("Project API data:", data);
console.log("gallery:", data.gallery);
data.gallery.forEach((entry) => {
if (entry.featured === true) {
banner = entry.url;
applyBanners();
}
});
} catch {
console.error(
"blueRinth: Something failed during banner loading. Please contact WorldWidePixel."
);
}
}

function applyBanners() {
console.log("applyBanners called, banner:", banner);
if (pageSupportsBanners) {
const bannerContainer = document.createElement("div");
const bannerStyles = document.createElement("style");
bannerStyles.innerHTML = `
.banner-image {
background-image:
linear-gradient(0deg, var(--color-bg) 0%, rgba(0, 0, 0, 0) 200%),
url(${banner}) !important;
}
`;
document.head.appendChild(bannerStyles);
bannerContainer.classList.add("banner-container");
const bannerImage = document.createElement("div");
bannerImage.classList.add("banner-image");
bannerContainer.appendChild(bannerImage);
const bannerBg = document.createElement("div");
bannerBg.classList.add("banner-bg");
document.body.appendChild(bannerBg);
document.body.appendChild(bannerContainer);
bannerContainer.style.opacity = "100%";
}
}
< /code>
Вот текст ошибок CSP, с которыми я сталкиваюсь, у меня мало представления о том, что они на самом деле имеют в виду, поэтому я здесь: < /p>

Содержимого-безопасности-policy: (только политика страницы). Настройки страницы будут блокировать встроенный сцена 'себя'". Рассмотрите возможность использования hash ('sha256-jbmybqga3tpybg9fuy2esk5fafhmvdyh2gunnhlcvuw =') или nonce. < /P>
< /blockquote>

sentecurity-policy: настройки страницы. Потому что это нарушает следующую директиву: «Style-Src https://m.stripe.network». Подумайте об использовании hash ('sha256-dd4j3unqshsomqcyi4vn5bt3mgzb/0fowba72rsgukc =', требуется «небезопасно» для атрибутов стиля) или нез Мой content.js, переключая темы на эти файлы, однако это не работает. Проблема также может возникнуть в моем content.js 
, где обрабатывается основная переключение темы.

Подробнее здесь: https://stackoverflow.com/questions/797 ... -extension
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»