Tarkista Chrome-laajennuksesta havaittu lähtevä IP
Lähetä rajattu pyyntö laajennuksen alkuperästä hallittuun päätepisteeseen ja kerro, mitä testi todella todistaa.
Chrome-laajennuksen välityspalvelintesti tarvitsee kohteen, jonka vastaus on ennustettava. Käytä HTTPS-päätepistettä, jota hallitset, esimerkiksi sellaista, joka palauttaa pienen JSON-olion ja siinä havaitsemansa osoitteen.
Suorita pyyntö laajennuksen kontekstista, kuten sen service workerista tai laajennussivulta, ja aseta päätepiste manifestin host permissions -kohtaan:
"host_permissions": ["https://probe.example/*"]
Isäntäoikeus ei anna content scriptille samoja alkuperien välisiä oikeuksia. Pidä testi laajennuksen kontekstissa sen sijaan, että olettaisit injektoidun skriptin voivan tehdä saman pyynnön.
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);
}
}
Isäntänimi on paikkamerkki. Palvelimen ja asiakkaan on sovittava vastauksen muodosta ja välimuistikäytännöstä. Käsittele hylätyt pyynnöt ja vialliset vastaukset laajennuksen kutsujassa sen sijaan, että näyttäisit ne kelvollisena lähtöosoitteena.
Nimeä havainto täsmällisesti
Onnistunut tulos todistaa, että tämä pyyntö saavutti päätepisteen ja sai odotetun muotoisen vastauksen. Vertaa havaittua osoitetta aiottuun reittiin silloin, kun vertailu on mielekäs. Määritetyn välityspalvelimen kuuntelu-IP:n ei tarvitse olla sen julkinen lähtö.
PAC-sääntö tai ohituslista voi lähettää testin suoraan, kun taas toinen kohde käyttää välityspalvelinta. Välityspalvelimen asetusten lukeminen antaa konfiguraatiotodisteen; pyyntö antaa todisteen tästä kohteesta. Kumpikaan yksin ei todista, että jokainen välilehti tai URL noudattaa samaa reittiä.
Pidä aikakatkaisu, HTTP-virhe ja odottamaton runko erillään käyttöliittymässä. ”Tämä testi epäonnistui” on hyödyllisempi kuin julistaa koko kone verkkoyhteydettömäksi yhden pyynnön jälkeen.