Ett proxytest i ett Chrome-tillägg behöver ett mål med ett förutsägbart svar. Använd en HTTPS-slutpunkt som du kontrollerar, till exempel en som returnerar ett litet JSON-objekt med adressen den ser.

Kör begäran från en tilläggskontext, till exempel dess service worker eller en tilläggssida, med slutpunkten i manifestets host permissions:

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

En värdsbehörighet ger inte ett content script samma rättigheter mellan ursprung. Håll testet i tilläggskontexten i stället för att anta att ett injicerat skript kan skicka samma begäran.

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ärdnamnet är en platshållare. Servern och klienten måste komma överens om svarsformatet och cachepolicyn. Hantera avvisade begäranden och felaktiga svar i tilläggets anropare i stället för att visa dem som en giltig utgående adress.

Namnge observationen exakt

Ett lyckat resultat bevisar att denna begäran nådde slutpunkten och fick det förväntade svarsformatet. Jämför den observerade adressen med den avsedda vägen där jämförelsen är meningsfull. Lyssnings-IP:n för den konfigurerade proxyn behöver inte vara dess offentliga utgång.

En PAC-regel eller en undantagslista kan skicka testet direkt medan ett annat mål använder en proxy. Att läsa proxyinställningarna ger konfigurationsbevis; begäran ger bevis för detta mål. Ingen av dem ensam bevisar att varje flik eller URL följer samma väg.

Håll tidsgräns, HTTP-fel och en oväntad body åtskilda i gränssnittet. ”Detta test misslyckades” är mer användbart än att förklara hela maskinen offline efter en enda begäran.

Relaterade artiklar