Ստուգել Chrome ընդլայնումից դիտարկված ելքային IP-ն
Ուղարկեք սահմանափակ հարցում ընդլայնման ծագումից դեպի ձեր վերահսկած վերջնակետ և հաղորդեք, թե ինչ է իրականում ապացուցում ստուգումը։
Chrome ընդլայնման մեջ պրոքսիի ստուգմանը պետք է կանխատեսելի պատասխանով նպատակակետ։ Օգտագործեք ձեր վերահսկած HTTPS վերջնակետ, օրինակ այնպիսին, որը վերադարձնում է փոքր JSON օբյեկտ՝ իր տեսած հասցեով։
Կատարեք հարցումը ընդլայնման համատեքստից, օրինակ՝ service worker-ից կամ ընդլայնման էջից, վերջնակետը դնելով manifest-ի host permissions-ում։
"host_permissions": ["https://probe.example/*"]
Հոսթի թույլտվությունը content script-ին չի տալիս նույն միջծագումային արտոնությունները։ Պահեք ստուգումը ընդլայնման համատեքստում՝ փոխարենը չենթադրելով, թե ներարկված սկրիպտը կարող է նույն հարցումն անել։
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);
}
}
Հոսթի անունը տեղապահ է։ Սերվերը և հաճախորդը պետք է համաձայնեն պատասխանի ձևաչափի և քեշավորման քաղաքականության շուրջ։ Մերժված հարցումներն ու աղավաղված պատասխանները մշակեք ընդլայնման կանչողում, այլ ոչ թե ցուցադրեք որպես վավեր ելքային հասցե։
Անվանեք դիտարկումը ճշգրիտ
Հաջող արդյունքն ապացուցում է, որ այս հարցումը հասել է վերջնակետին և ստացել սպասվող ձևի պատասխան։ Համեմատեք դիտարկված հասցեն ձեր նախատեսած ուղու հետ, որտեղ այդ համեմատությունն իմաստալից է։ Կարգավորված պրոքսիի լսող IP-ն պարտադիր չէ, որ լինի նրա հանրային ելքը։
PAC կանոնը կամ շրջանցման ցանկը կարող է ստուգումն ուղարկել ուղղակիորեն, մինչ մեկ այլ նպատակակետ օգտագործում է պրոքսի։ Պրոքսիի կարգավորումները կարդալը տալիս է կազմաձևման ապացույց․ հարցումը ապացույց է տալիս այս նպատակակետի համար։ Դրանցից ոչ մեկը մենակ չի ապացուցում, որ յուրաքանչյուր ներդիր կամ URL հետևում է նույն ուղուն։
Ինտերֆեյսում առանձին պահեք ժամանակի սահմանը, HTTP սխալը և անսպասելի մարմինը։ «Այս ստուգումը ձախողվեց»-ն ավելի օգտակար է, քան մեկ հարցումից հետո ամբողջ մեքենան անցանց հայտարարելը։