Αξιολόγηση PAC στο Jint: λείποντες βοηθοί και αποτελέσματα διαδρομών
Η εκτέλεση του FindProxyForURL είναι ένα βήμα: ο κεντρικός υπολογιστής πρέπει να υλοποιεί βοηθούς PAC, να περιορίζει την εκτέλεση και να ερμηνεύει τη λίστα διαδρομών που επιστρέφεται.
Αν το Jint αναφέρει λείπον dnsResolve ή myIpAddress κατά την αξιολόγηση PAC, η φόρτωση περισσότερου JavaScript δεν είναι απαραίτητα η λύση. Αυτοί οι βοηθοί PAC ανήκουν στο περιβάλλον που παρέχει η εφαρμογή υποδοχής.
Πριν την κλήση του FindProxyForURL
Επιλέξτε το υποστηριζόμενο σύνολο βοηθών PAC και τις οικογένειες διευθύνσεων και μετά εγκαταστήστε αυτούς τους βοηθούς στη μηχανή. Διατηρήστε τα συμβόλαιά τους: το dnsResolve δέχεται όνομα κεντρικού υπολογιστή, το myIpAddress δεν δέχεται ορίσματα και χρειάζεται πολιτική τοπικής διεπαφής, και το shExpMatch χρησιμοποιεί μοτίβα τύπου shell. Ένα στέλεχος που επιστρέφει μια βολική τιμή μπορεί να επιλέξει σιωπηρά τη λάθος διαδρομή.
Με την αρχικοποίηση αυτή ολοκληρωμένη, η βασική κλήση στο Jint 4.4.0 μπορεί να μοιάζει έτσι:
var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
"FindProxyForURL",
destinationUrl,
destination.IdnHost
).AsString();Το engine είναι το ρυθμισμένο Jint.Engine· το pacSource είναι το πρόγραμμα PAC που ανακτήθηκε. Το destination.IdnHost παρέχει το όνομα κεντρικού υπολογιστή χωρίς θύρα ή διαδρομή. Η κλήση αυτή ούτε ανακτά PAC ούτε ανοίγει σύνδεση διαμεσολαβητή.
Μετά την κλήση
Ερμηνεύστε ένα αποτέλεσμα όπως PROXY proxy.example:8080; DIRECT ως διατεταγμένη λίστα υποψήφιων διαδρομών και εφεδρικής επιλογής. Η μετάδοση ολόκληρης της συμβολοσειράς ως URL διαμεσολαβητή χάνει το νόημά της. Κρατήστε μια αποτυχία αξιολόγησης χωριστά από ένα ρητό αποτέλεσμα DIRECT.
Όσο εκτελείται
Ρυθμίστε τους περιορισμούς του Jint σε διάρκεια, εντολές, μνήμη και ακύρωση και εκθέστε μόνο τις απαιτούμενες συναρτήσεις υποδοχής. Περιορίστε τις επιστροφές DNS ξεχωριστά: οι έλεγχοι εκτέλεσης JavaScript δεν κάνουν μια αυθαίρετη αποκλειστική κλήση υποδοχής διακοπτόμενη. Σειριοποιήστε την πρόσβαση σε μια μηχανή ή δώστε στην ταυτόχρονη εργασία ξεχωριστά ιδιόκτητα στιγμιότυπα· οι μηχανές δεν είναι ασφαλείς για ταυτόχρονη χρήση.
Οι υλοποιήσεις PAC των περιηγητών μπορεί να διαφέρουν σε επεκτάσεις βοηθών και στις λεπτομέρειες URL που εκθέτουν, ειδικά για HTTPS. Η αντιστοίχιση ενός δείγματος αποτελέσματος αποδεικνύει λιγότερα από την αντιστοίχιση της συμπεριφοράς δρομολόγησης του περιηγητή.