Αιτήσεις κεφαλίδα IIS CGI HTTP_PROXY ενδέχεται να ανακατευθυνθείτε

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 3179800
Συμπτώματα
Όταν χρησιμοποιείτε τη δυνατότητα των υπηρεσιών IIS Common Gateway Interface (CGI) για να φιλοξενήσετε ένα εκτελέσιμο πρόγραμμα που χρησιμοποιεί μια συγκεκριμένη βιβλιοθήκη για να ανακατευθύνετε αιτήσεις, αιτήσεις μπορούν να γίνονται παράνομα με βάση την ύπαρξη μιας κεφαλίδας αίτησης "Διακομιστής ΜΕΣΟΛΆΒΗΣΗΣ". Αρκετές πλατφόρμες εφαρμογής web είναι γνωστές για να χρησιμοποιήσετε αυτήν τη βιβλιοθήκη. Αυτά περιλαμβάνουν PHP, Python και μετάβαση, μεταξύ άλλων.
Αιτία
CGI είναι μια διασύνδεση η οποία επιτρέπει σε ένα διακομιστή web για εφαρμογές κεντρικού υπολογιστή που εκτελούνται ως διεργασίες εκτελέσιμο. Όταν ληφθεί μια αίτηση από ένα διακομιστή web, ο διακομιστής ξεκινά μια νέα διαδικασία για να χειριστεί αυτό το αίτημα. Όταν ολοκληρωθεί το αίτημα, η διεργασία τερματίζεται. Προκειμένου η διαδικασία να έχουν πρόσβαση στα δεδομένα της αίτησης, οι κεφαλίδες αίτησης περιλαμβάνονται ως μεταβλητές περιβάλλοντος που έχουν "Πρόθεμα HTTP_" συνοδεύεται με το όνομά τους. Επομένως, οι διεργασίες CGI για τις αιτήσεις που περιέχουν μια επικεφαλίδα που ονομάζεται "Διακομιστής μεσολάβησης" έχουν μια μεταβλητή περιβάλλοντος "HTTP_PROXY" που έχουν την ίδια τιμή με την κεφαλίδα αίτησης.

Η καμπύλη γραμμή εντολών και το libraryare χρησιμοποιείται συχνά για την enablevarious είδη εφαρμογών για να κάνουν αιτήσεις για διάφορα είδη διακομιστών, συμπεριλαμβανομένων των διακομιστών web. Αυτή η βιβλιοθήκη μπορεί να ρυθμιστεί χρησιμοποιώντας τις παραμέτρους γραμμής εντολών ή να μπορεί να διαβάσει τις παραμέτρους ρύθμισης παραμέτρων από τις μεταβλητές περιβάλλοντος της διαδικασίας κεντρικού υπολογιστή. "HTTP_PROXY" είναι μία από τις πολλές παραμέτρους ρύθμισης παραμέτρων που χρησιμοποιούνται από την καμπύλη. "HTTP_PROXY" χρησιμοποιείται από καμπύλη για να στείλετε μια αίτηση HTTP μέσω του διακομιστή μεσολάβησης που έχει ρυθμιστεί.

Σημείωση Αυτό δεν σχετίζεται με το "HTTP_PROXY" ως η αναπαράσταση μιας κεφαλίδας αίτησης του υπολογιστή-πελάτη.

Όταν η καμπύλη βρίσκεται μέσα σε μια διαδικασία CGI, και αυτή η διαδικασία περιέχει μια μεταβλητή περιβάλλοντος με το όνομα "HTTP_PROXY", καμπύλη χρησιμοποιεί την τιμή της με sendrequested δεδομένα μέσω του διακομιστή μεσολάβησης HTTP των οποίων η αξία καθορίζεται στη μεταβλητή περιβάλλοντος. Αυτό συμβαίνει επειδή η καμπύλη αναμένει ότι "HTTP_PROXY" είναι μια οδηγία ρύθμισης παραμέτρων και δεν μια κεφαλίδα αίτησης του υπολογιστή-πελάτη.
Εναλλακτικός τρόπος αντιμετώπισης
Για να επιλύσετε αυτό το ζήτημα, μην χρησιμοποιείτε CGI σε ένα διακομιστή που εκτελεί τις υπηρεσίες IIS. CGI είναι μια απαρχαιωμένη σε μεγάλο βαθμό διασύνδεση που έχει αντικατασταθεί από νεότερες και πιο επιδόσεων που σχετίζονται με τις διασυνδέσεις. Συγκεκριμένα, PHP, Python και μετάβαση θα πρέπει να φιλοξενούνται μέσω FastCGI στις υπηρεσίες IIS. FastCGI δεν χρησιμοποιεί μεταβλητές περιβάλλοντος για κεφαλίδες αίτησης του υπολογιστή-πελάτη και δεν διαθέτει αυτό το ζήτημα. Ωστόσο για PHP, ορισμένες εφαρμογές ενδέχεται να χρησιμοποιήσετε συνάρτηση getenv() PHPs για να ανακτήσετε τις μεταβλητές περιβάλλοντος. Αυτό ακόμα και όταν PHP δεν βρίσκεται μέσα σε μια διαδικασία CGI, αναπαράγει τη συμπεριφορά CGI με έγχυση τιμές κεφαλίδας αίτησης στο σύνολο των δεδομένων που είναι διαθέσιμες για τη συνάρτηση getenv() . Εάν χρησιμοποιείτε μια εφαρμογή PHP που ανακτά HTTP_PROXY με αυτόν τον τρόπο, ισχύουν τα παρακάτω μετριασμούς καταργώντας την τιμή κεφαλίδας ή απορρίπτει αιτήσεις με μια κεφαλίδα PROXY.

Εάν χρειάζεται να χρησιμοποιήσετε CGI για κάποιο λόγο, αποκλείστε αιτήσεις που περιέχουν μια κεφαλίδα αίτησης με το όνομα "Διακομιστής μεσολάβησης" ή καταργήστε την τιμή της κεφαλίδας. Αυτό συμβαίνει επειδή "Διακομιστής μεσολάβησης" δεν είναι ένα όνομα κεφαλίδας αίτησης τυπική και προγράμματα περιήγησης γενικά δεν θα στείλει αυτό.

Για να αποκλείσετε μια αίτηση που περιέχει μια κεφαλίδα Proxy (η προτιμώμενη λύση), εκτελέστε την ακόλουθη γραμμή εντολών:
Appcmd ρύθμιση παραμέτρων /section:requestfiltering / + requestlimits.headerLimits. [κεφαλίδα = 'διακομιστής μεσολάβησης', sizelimit = '0']

Σημείωση Το appcmd.exe δεν βρίσκεται συνήθως στη διαδρομή και βρίσκεται στον κατάλογο %systemroot%\system32\inetsrv

Για να καταργήσετε την τιμή της κεφαλίδας, μπορείτε να χρησιμοποιήσετε τον παρακάτω κανόνα επανεγγραφή URL:
<system.webServer>    <rewrite>        <rules>            <rule name="Erase HTTP_PROXY" patternSyntax="Wildcard">                <match url="*.*" />                <serverVariables>                    <set name="HTTP_PROXY" value="" />                </serverVariables>                <action type="None" />            </rule>        </rules>    </rewrite></system.webServer>

Σημείωση Η διεύθυνση URL επανεγγραφή είναι μια δυνατότητα λήψης πρόσθετο στις υπηρεσίες IIS και δεν περιλαμβάνεται σε μια προεπιλεγμένη εγκατάσταση των υπηρεσιών IIS.

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Свойства

ИД на статията: 3179800 – Последен преглед: 07/20/2016 20:25:00 – Редакция: 2.0

Windows 10, Windows 10 Version 1511, Windows Server 2012 R2 Datacenter, Windows Server 2012 R2 Standard, Windows Server 2012 R2 Essentials, Windows Server 2012 R2 Foundation, Windows 8.1 Enterprise, Windows 8.1 Pro, Windows 8.1, Windows RT 8.1, Windows Server 2012 Datacenter, Windows Server 2012 Standard, Windows Server 2012 Essentials, Windows Server 2012 Foundation, Windows Server 2008 R2 Service Pack 1, Windows 7 Service Pack 1, Windows Server 2008 Service Pack 2, Service Pack 2 για Windows Vista

  • atdownload kbbug kbexpertiseinter kbfix kbsecbulletin kbsecurity kbsecvulnerability kbmt KB3179800 KbMtel
Обратна връзка