Periksa IP Keluar yang Teramati dari Ekstensi Chrome
Kirim permintaan terbatas dari asal ekstensi ke titik akhir yang Anda kendalikan dan laporkan apa yang sebenarnya dibuktikan oleh pemeriksaan itu.
Pemeriksaan proksi di ekstensi Chrome membutuhkan tujuan dengan respons yang dapat diprediksi. Gunakan titik akhir HTTPS yang Anda kendalikan, misalnya yang mengembalikan objek JSON kecil berisi alamat yang diamatinya.
Jalankan permintaan dari konteks ekstensi, seperti service worker atau halaman ekstensi, dengan titik akhir di host permissions manifes:
"host_permissions": ["https://probe.example/*"]
Izin host tidak memberi content script hak istimewa lintas asal yang sama. Pertahankan pemeriksaan di konteks ekstensi alih-alih menganggap skrip yang disuntikkan dapat membuat permintaan yang sama.
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);
}
}
Nama host adalah pengganti. Server dan klien harus menyepakati format respons dan kebijakan cache. Tangani permintaan yang ditolak dan respons cacat di pemanggil ekstensi alih-alih menampilkannya sebagai alamat keluar yang valid.
Namai pengamatan dengan tepat
Hasil yang berhasil membuktikan bahwa permintaan ini mencapai titik akhir dan menerima bentuk jawaban yang diharapkan. Bandingkan alamat yang teramati dengan rute yang Anda maksudkan, bila perbandingan itu bermakna. IP pendengar proksi yang dikonfigurasi belum tentu menjadi jalan keluar publiknya.
Aturan PAC atau daftar lewati dapat mengirim pemeriksaan secara langsung sementara tujuan lain memakai proksi. Membaca pengaturan proksi memberi bukti konfigurasi; permintaan memberi bukti untuk tujuan ini. Tidak satu pun sendirian membuktikan bahwa setiap tab atau URL mengikuti rute yang sama.
Pisahkan waktu tunggu, galat HTTP, dan isi tak terduga di antarmuka. “Pemeriksaan ini gagal” lebih berguna daripada menyatakan seluruh mesin luring setelah satu permintaan.