En proxy-test i en Chrome-udvidelse har brug for en destination med et forudsigeligt svar. Brug et HTTPS-endepunkt, du kontrollerer, fx et der returnerer et lille JSON-objekt med den adresse, det ser.

Kør anmodningen fra en udvidelseskontekst, fx dens service worker eller en udvidelsesside, med endepunktet i manifestets host permissions:

"host_permissions": ["https://probe.example/*"]

En værtsrettighed giver ikke et content script de samme rettigheder på tværs af oprindelser. Hold testen i udvidelseskonteksten i stedet for at antage, at et injiceret script kan sende den samme anmodning.

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);
  }
}

Værtsnavnet er en pladsholder. Serveren og klienten skal være enige om svarformatet og cachepolitikken. Håndtér afviste anmodninger og fejlbehæftede svar i udvidelsens kalder i stedet for at vise dem som en gyldig udgangsadresse.

Navngiv observationen præcist

Et vellykket resultat beviser, at denne anmodning nåede endepunktet og modtog den forventede form for svar. Sammenlign den observerede adresse med den rute, du havde til hensigt, hvor sammenligningen giver mening. Den konfigurerede proxys lytte-IP behøver ikke være dens offentlige udgang.

En PAC-regel eller en bypass-liste kan sende testen direkte, mens en anden destination bruger en proxy. At læse proxyindstillingerne giver konfigurationsbevis; anmodningen giver bevis for denne destination. Ingen af dem alene beviser, at hver fane eller URL følger samme rute.

Hold timeout, HTTP-fejl og en uventet body adskilt i brugerfladen. “Denne test mislykkedes” er mere nyttigt end at erklære hele maskinen offline efter én anmodning.

Relaterede artikler