Έλεγχος της παρατηρούμενης διεύθυνσης IP εξόδου από επέκταση Chrome
Στείλτε ένα περιορισμένο αίτημα από την προέλευση της επέκτασης σε έναν ελεγχόμενο τελικό σταθμό και αναφέρετε τι αποδεικνύει πραγματικά η δοκιμή.
Μια δοκιμή διαμεσολαβητή σε επέκταση Chrome χρειάζεται προορισμό με προβλέψιμη απόκριση. Χρησιμοποιήστε τελικό σταθμό HTTPS που ελέγχετε, όπως έναν που επιστρέφει ένα μικρό αντικείμενο JSON με τη διεύθυνση που παρατηρεί.
Εκτελέστε το αίτημα από το περιβάλλον της επέκτασης, όπως τον service worker ή μια σελίδα της επέκτασης, με τον τελικό σταθμό στα host permissions του manifest:
"host_permissions": ["https://probe.example/*"]
Η άδεια υποδοχής δεν δίνει σε ένα content script τα ίδια δικαιώματα μεταξύ προελεύσεων. Κρατήστε τη δοκιμή στο περιβάλλον της επέκτασης αντί να υποθέσετε ότι ένα εγχυμένο 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 και το απρόσμενο σώμα. Το «αυτή η δοκιμή απέτυχε» είναι πιο χρήσιμο από το να κηρύξετε όλο το μηχάνημα εκτός σύνδεσης μετά από ένα αίτημα.