Ένα URL proxy λειτουργεί όταν ρυθμίζεται απευθείας, αλλά ο έλεγχος ταυτότητας αποτυγχάνει αφού η ίδια τιμή μεταφερθεί σε αρχείο batch των Windows. Ελέγξτε αν ο αναλυτής batch άλλαξε τα σημάδια ποσοστού πριν το πρόγραμμα-πελάτης HTTP λάβει το URL.

Υπάρχουν δύο ξεχωριστές αναπαραστάσεις. Η κωδικοποίηση URL μπορεί να αναπαραστήσει μια ανάποδη κάθετο ως %5C και ένα ερωτηματικό ως %3F. Ένα κυριολεκτικό σημάδι ποσοστού σε εντολή αρχείου batch χρειάζεται διαφυγή ως %%.

Για έναν ενδεικτικό λογαριασμό domain\user με τον κωδικό πρόσβασης-θέση pass?, ένα αρχείο .bat μπορεί να περιέχει:

set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"

Η διεργασία που εκκινείται στη συνέχεια θα πρέπει να λάβει URL που περιέχει domain%5Cuser:pass%3F. Τα διπλά σημάδια ποσοστού ανήκουν στην πηγή batch, όχι στο URL proxy που αποθηκεύει το πρόγραμμα-πελάτης.

Μην αντιγράψετε αυτή τη γραφή batch σε αρχείο .npmrc ή στο πεδίο proxy μιας εφαρμογής: αυτές οι είσοδοι δεν περνούν από το ίδιο στάδιο ανάλυσης batch. Ομοίως, αυτό το παράδειγμα δεν είναι σύνταξη PowerShell. Ένα άλλο περίβλημα, όπως CALL ή μια εντολή κατασκευασμένη για δεύτερο κέλυφος, μπορεί να εισαγάγει άλλο πέρασμα ανάλυσης και χρειάζεται δική του εξέταση.

Βάλτε την ανάθεση SET σε εισαγωγικά όπως φαίνεται, ώστε τυχαία κενά ή μεταχαρακτήρες κελύφους να μην γίνουν μέρος ανεπιθύμητης εντολής. Τα εισαγωγικά μόνα τους δεν εμποδίζουν την επέκταση ποσοστού.

Όταν ελέγχετε το αποτέλεσμα, συγκρίνετε την αναμενόμενη κωδικοποίηση με μια επεξεργασμένη αναπαράσταση αντί να εκτυπώνετε το URL με τον κωδικό σε κοινόχρηστο αρχείο καταγραφής. Μια επισκευή διαφυγής κελύφους διατηρεί το διαπιστευτήριο· δεν επιλέγει σχήμα ελέγχου ταυτότητας που το πρόγραμμα-πελάτης δεν υποστήριζε ήδη.

Σχετικά άρθρα