Overte pozorovanú výstupnú IP z rozšírenia Chrome
Odošlite obmedzenú požiadavku z prostredia rozšírenia na kontrolovaný koncový bod a uveďte, čo test skutočne dokazuje.
Sonda proxy v rozšírení Chrome potrebuje cieľ s predvídateľnou odpoveďou. Použite koncový bod HTTPS, ktorý ovládate, napríklad taký, ktorý vracia malý objekt JSON s adresou, ktorú vidí.
Spustite požiadavku z kontextu rozšírenia, napríklad z jeho service workera alebo stránky rozšírenia, s koncovým bodom v host permissions manifestu:
"host_permissions": ["https://probe.example/*"]
Oprávnenie hostiteľa nedáva content scriptu rovnaké práva medzi pôvodmi. Ponechajte sondu v kontexte rozšírenia, namiesto predpokladu, že vložený skript môže odoslať rovnakú požiadavku.
async function probe() {
const controller = new AbortController();
const timer = setTimeout(() => controller.abort(), 5000);
try {
const response = await fetch('https://probe.example/ip', {
cache: 'no-store',
signal: controller.signal,
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const result = await response.json();
if (typeof result.ip !== 'string') throw new Error('Bad probe body');
return result.ip;
} finally {
clearTimeout(timer);
}
}
Názov hostiteľa je zástupný. Server a klient sa musia dohodnúť na formáte odpovede a zásadách ukladania do vyrovnávacej pamäte. Odmietnuté požiadavky a poškodené odpovede ošetrite v volajúcom kóde rozšírenia, ne zobrazujte ich ako platnú výstupnú adresu.
Pomenujte pozorovanie presne
Úspešný výsledok dokazuje, že táto požiadavka dorazila na koncový bod a dostala očakávanú podobu odpovede. Porovnajte pozorovanú adresu so zamýšľanou trasou tam, kde má toto porovnanie zmysel. IP, na ktorej nakonfigurovaná proxy počúva, nemusí byť jej verejný výstup.
Pravidlo PAC alebo zoznam obchádzania môže sondu odoslať priamo, zatiaľ čo iný cieľ používa proxy. Čítanie nastavení proxy poskytuje dôkaz o konfigurácii; požiadavka poskytuje dôkaz pre tento cieľ. Ani jedno samo o sebe nedokazuje, že každá karta alebo URL sleduje rovnakú trasu.
V rozhraní držte časový limit, chybu HTTP a neočakávané telo oddelene. „Táto sonda zlyhala“ je užitočnejšie než po jednej požiadavke vyhlásiť celý stroj za offline.