Tarpinio serverio patikrai „Chrome“ plėtinyje reikia paskirties su nuspėjamu atsakymu. Naudokite jūsų kontroliuojamą HTTPS galinį tašką, pavyzdžiui, tokį, kuris grąžina mažą JSON objektą su jo matomu adresu.

Vykdykite užklausą iš plėtinio konteksto, pavyzdžiui, jo service worker ar plėtinio puslapio, o galinį tašką įtraukite į manifest host permissions:

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

Pagrindinio kompiuterio leidimas nesuteikia content script tokių pačių tarpkilmės teisių. Laikykite patikrą plėtinio kontekste, o ne manykite, kad įterptas scenarijus gali išsiųsti tą pačią užklausą.

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

Pagrindinio kompiuterio vardas yra pakaitinis. Serveris ir klientas turi susitarti dėl atsakymo formato ir podėlio politikos. Apdorokite atmestas užklausas ir sugadintus atsakymus plėtinio iškvietėje, o ne rodydami juos kaip galiojantį išėjimo adresą.

Pavadinkite stebėjimą tiksliai

Sėkmingas rezultatas įrodo, kad ši užklausa pasiekė galinį tašką ir gavo laukiamos formos atsakymą. Palyginkite stebimą adresą su numatytu maršrutu ten, kur šis palyginimas prasmingas. Sukonfigūruoto tarpinio serverio klausomasis IP neturi būti jo viešasis išėjimas.

PAC taisyklė arba apėjimo sąrašas gali išsiųsti patikrą tiesiogiai, kai kita paskirtis naudoja tarpinį serverį. Tarpinio serverio nustatymų skaitymas suteikia konfigūracijos įrodymų; užklausa suteikia įrodymų šiai paskirčiai. Nė vienas jų atskirai neįrodo, kad kiekviena kortelė ar URL eina tuo pačiu maršrutu.

Atskirkite sąsajoje laiko limitą, HTTP klaidą ir netikėtą turinį. „Ši patikra nepavyko“ yra naudingiau nei po vienos užklausos paskelbti visą mašiną neprisijungusią.

Susiję straipsniai