Provjerite uočenu izlaznu IP adresu iz Chrome proširenja
Pošaljite ograničen zahtjev iz podrijetla proširenja na kontroliranu krajnju točku i izvijestite što provjera doista dokazuje.
Provjera proxyja u Chrome proširenju treba odredište s predvidivim odgovorom. Koristite HTTPS krajnju točku koju kontrolirate, poput one koja vraća mali JSON objekt s adresom koju vidi.
Pokrenite zahtjev iz konteksta proširenja, npr. iz njegova service workera ili stranice proširenja, s krajnjom točkom u host permissions manifesta:
"host_permissions": ["https://probe.example/*"]
Dozvola za host ne daje content scriptu iste privilegije za zahtjeve između podrijetla. Držite provjeru u kontekstu proširenja umjesto da pretpostavljate da ubrizgana skripta može poslati isti zahtjev.
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);
}
}
Naziv hosta je rezervirano mjesto. Poslužitelj i klijent moraju se dogovoriti o formatu odgovora i politici predmemoriranja. Odbijene zahtjeve i neispravne odgovore obradite u pozivatelju proširenja, a ne prikazujte ih kao valjanu izlaznu adresu.
Točno imenujte zapažanje
Uspješan rezultat dokazuje da je ovaj zahtjev stigao do krajnje točke i dobio očekivani oblik odgovora. Usporedite uočenu adresu s rutom koju ste namjeravali, gdje ta usporedba ima smisla. IP na kojem konfigurirani proxy sluša ne mora biti njegov javni izlaz.
PAC pravilo ili popis zaobilaženja može poslati provjeru izravno dok drugo odredište koristi proxy. Čitanje proxy postavki daje dokaze o konfiguraciji; zahtjev daje dokaze za ovo odredište. Nijedno samo po sebi ne dokazuje da svaka kartica ili URL slijedi istu rutu.
Držite istek vremena, HTTP pogrešku i neočekivano tijelo odvojeno u sučelju. „Ova provjera nije uspjela“ korisnije je od proglašavanja cijelog stroja izvan mreže nakon jednog zahtjeva.