'n Proksi-toets in 'n Chrome-uitbreiding het 'n bestemming met 'n voorspelbare reaksie nodig. Gebruik 'n HTTPS-eindpunt wat jy beheer, soos een wat 'n klein JSON-voorwerp terugstuur met die adres wat dit sien.

Voer die versoek uit vanuit 'n uitbreidingskonteks, soos die dienswerker of 'n uitbreidingsblad, met die eindpunt in die manifest se gasheertoestemmings:

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

'n Gasheertoestemming gee nie aan 'n inhoudskrip dieselfde kruis-oorsprong-voorregte nie. Hou die toets in die uitbreidingskonteks eerder as om aan te neem dat 'n ingevoegde skrip dieselfde versoek kan maak.

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

Die gasheernaam is 'n plekhouer. Die bediener en die kliënt moet oor die reaksieformaat en die kasbeleid saamstem. Hanteer verwerpte versoeke en wanvormige reaksies in die uitbreiding se oproeper eerder as om dit as 'n geldige uitgangsadres te vertoon.

Benoem die waarneming akkuraat

'n Suksesvolle resultaat bewys dat hierdie versoek die eindpunt bereik het en die verwagte vorm van antwoord ontvang het. Vergelyk die waargenome adres met die roete wat jy bedoel het, waar daardie vergelyking betekenisvol is. Die gekonfigureerde proksi se luister-IP hoef nie sy publieke uitgang te wees nie.

'n PAC-reël of 'n omsylysing kan die toets direk stuur terwyl 'n ander bestemming 'n proksi gebruik. Om die proksi-instellings te lees lewer konfigurasiebewyse; die versoek lewer bewyse vir hierdie bestemming. Nie een alleen bewys dat elke oortjie of URL dieselfde roete volg nie.

Hou 'n tydsbeperking, 'n HTTP-fout en 'n onverwagte liggaam afsonderlik in die koppelvlak. “Hierdie toets het misluk” is nuttiger as om die hele masjien na een versoek as aflyn te verklaar.

Verwante artikels