Как добавить заголовок «Referer» к сетевым вызовам, выполняемым в расширениях, созданных с использованием манифеста V3?
Я разработал расширение Chrome, используя манифест v3. Я открываю iframe в сценарии контента, и из iframe выполняется несколько сетевых вызовов. Я вижу, что у этих вызовов нет заголовка. Чтобы решить эту проблему, я использовалdeclarativeNetRequest
.
у меня это есть вmanifest.json
"permissions": ["scripting", "activeTab", "contextMenus", "storage", "tabs", "declarativeNetRequestWithHostAccess",
"declarativeNetRequestFeedback"]
Используя этот фрагмент кода в моемservice worker
добавить заголовок
async function addRefererToRequestHeader() {
const ruleId = Math.floor(Math.random() * 1000000); // Generate a random number as the rule ID
const rules = [{
id: ruleId,
action: {
type: 'modifyHeaders',
requestHeaders: [
{
header: 'New-Referer',
operation: 'set',
value: 'https://example.com/*',
},
],
},
condition: {
resourceTypes: ['sub_frame'],
urlFilter: 'https://example.com/*',
},
}];
try {
await browser.declarativeNetRequest.updateDynamicRules({
removeRuleIds: [],
addRules: rules,
});
console.log('Rules added successfully.');
} catch (error) {
console.error('Error adding rules:', error);
}
}
Но, видимо, вызовhttps://example.com/*
не содержит заголовка. Можно ли вообще добавитьReferer
заголовок? Если да, то как? Каковы последствия этого для безопасности?
PS: я использую браузер webextension polyyfills.