Ṣàyẹ̀wò IP ìjáde tí a ṣàkíyèsí láti inú Chrome extension
Fi ìbéèrè tí ó ní ààlà ránṣẹ́ láti orísun extension sí ibi ìparí tí a ṣàkóso, kì í sì í jábọ̀ ohun tí àyẹ̀wò náà fi hàn ní tòótọ́.
Àyẹ̀wò proxy nínú Chrome extension nílò ibi tí ìdáhùn rẹ̀ lè ṣe àfojúsùn. Lo HTTPS ibi ìparí tí ìwọ fúnra rẹ ń ṣàkóso, bíi èyí tí ń dá JSON ohun kékeré padà pẹ̀lú àdírẹ́sì tí ó rí.
Ṣe ìbéèrè náà láti inú àyíká extension, bíi service worker rẹ̀ tàbí ojú-ìwé extension, pẹ̀lú ibi ìparí nínú host permissions ti manifest:
"host_permissions": ["https://probe.example/*"]
Ìyọ̀ǹda host kò fún content script ní àǹfààní àgbéléwọ̀n orísun kan náà. Pa àyẹ̀wò náà mọ́ nínú àyíká extension dípò rírò pé script tí a fi sínú lè ṣe ìbéèrè kan náà.
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);
}
}
Orúkọ host jẹ́ àpapọ̀ ibi. Server àti client gbọ́dọ̀ gbà lórí ìrísí ìdáhùn àti ìlànà cache. Ṣàkóso àwọn ìbéèrè tí a kọ̀ àti àwọn ìdáhùn tí kò tọ́ nínú olùpè extension dípò fífi wọ́n hàn gẹ́gẹ́ bí àdírẹ́sì ìjáde tí ó wúlò.
Dárúkọ àkíyèsí náà ní pípé
Àbájáde àṣeyọrí fi hàn pé ìbéèrè yìí dé ibi ìparí àti pé ó gba ìrísí ìdáhùn tí a retí. Fi àdírẹ́sì tí a ṣàkíyèsí wé ọ̀nà tí o ní lọ́kàn, níbi tí ìfiwéra náà bá yẹ.IP tí proxy tí a ṣètò ń gbọ́ kò gbọdọ̀ jẹ́ ìjáde gbogbogbo rẹ̀.
Òfin PAC tàbí àkójọ àforíjì lè rán àyẹ̀wò náà tààrà nígbà tí ibi mìíràn ń lo proxy.Kíkà àwọn ètò proxy ń pèsè ẹ̀rí ìṣètò; ìbéèrè náà ń pèsè ẹ̀rí fún ibi yìí. Kò sí ọ̀kan nínú wọn tí ó lè fi hàn pé gbogbo tab tàbí URL ń tẹ̀lé ọ̀nà kan náà.
Ya àkókò ìparí, àṣìṣe HTTP àti ara àìròtẹ́lẹ̀ sọ́tọ̀ nínú ojú-ìwé. «Àyẹ̀wò yìí kùnà» wúlò ju fífi gbogbo ẹ̀rọ hàn gẹ́gẹ́ bí kò sí lórí ayélujá lẹ́yìn ìbéèrè kan.