Μήνυμα λάθους όταν επισκέπτεστε μια τοποθεσία Web που φιλοξενείται στο IIS 7.0: "HTTP Σφάλμα 404.11 – URL_DOUBLE_ESCAPED"

Συμπτώματα

Έχετε μια τοποθεσία Web που φιλοξενείται στον Internet Information Services (IIS) 7.0. Όταν επισκέπτεστε την τοποθεσία Web, ενδέχεται να λάβετε ένα μήνυμα λάθους παρόμοιο με το ακόλουθο:
Σφάλμα διακομιστή
--------------------------------------------------------------------------------
Σφάλμα HTTP 404.11-URL_DOUBLE_ESCAPED
HRESULT: 0
Περιγραφή της HRESULT # η λειτουργία ολοκληρώθηκε με επιτυχία.

Αιτία

Η αίτηση HTTP στο διακομιστή Web περιέχει μια ακολουθία escape διπλά. Ωστόσο, η δυνατότητα φιλτραρίσματος αίτηση έχει ρυθμιστεί έτσι, ώστε ο διακομιστής Web αποτρέπει τις ακολουθίες χαρακτήρων escape διπλά.

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα.

Σημείωση Αφού ακολουθήσετε αυτά τα βήματα, μπορεί να μειωθεί το επίπεδο ασφαλείας του διακομιστή που εκτελεί τις υπηρεσίες IIS. Επομένως, πριν να ορίσετε την ιδιότητα allowDoubleEscaping στην τιμή True, λάβετε υπόψη τον κίνδυνο που εμπλέκεται.
  1. Κάντε κλικ στο κουμπί Έναρξη, πληκτρολογήστε Σημειωματάριο (Notepad) στο πλαίσιο " Έναρξη αναζήτησης ", κάντε δεξιό κλικ στο Σημειωματάριο (Notepad) στη λίστα προγραμμάτων , και στη συνέχεια, κάντε κλικ στην εντολή Εκτέλεση ως διαχειριστής. Εάν σας ζητηθεί κωδικός πρόσβασης διαχειριστή ή επιβεβαίωση, πληκτρολογήστε τον κωδικό πρόσβασής σας ή κάντε κλικ στο κουμπί συνέχεια.
  2. Στο μενού αρχείο , κάντε κλικ στο κουμπί Άνοιγμα, πληκτρολογήστε %windir%\System32\inetsrv\config\applicationHost.config στο πλαίσιο όνομα αρχείου και, στη συνέχεια, κάντε κλικ στο κουμπί Άνοιγμα.
  3. Στο αρχείο ApplicationHost.config, εντοπίστε το στοιχείο XML requestFiltering .
  4. Αλλάξτε την τιμή της ιδιότητας allowDoubleEscaping σε True. Για να γίνει αυτό, χρησιμοποιήστε κώδικα που μοιάζει με το ακόλουθο παράδειγμα κώδικα.
    <requestFiltering allowDoubleEscaping="true">
  5. Στο μενού αρχείο , κάντε κλικ στο κουμπί " Αποθήκευση".
  6. Κλείστε το Σημειωματάριο (Notepad).
Σημαντικό Όταν ενεργοποιείτε την διπλή ακολουθίες κώδικας, μπορεί να μειωθεί το επίπεδο ασφαλείας του διακομιστή που εκτελεί τις υπηρεσίες IIS.

Τα προηγούμενα βήματα θα άμεσα να επεξεργαστείτε το αρχείο applicationHost.config και να ρυθμίσετε αυτήν τη ρύθμιση στο επίπεδο του διακομιστή. Μπορείτε επίσης να χρησιμοποιήσετε την εντολή " Appcmd " για να ρυθμίσετε τις παραμέτρους αυτής της ρύθμισης. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
  1. Κάντε κλικ στο κουμπί Έναρξη, επιλέξτε Εκτέλεσηκαι, στη συνέχεια, πληκτρολογήστε cmd στο πλαίσιο " Άνοιγμα ".
  2. Πληκτρολογήστε την ακόλουθη εντολή και, στη συνέχεια, πιέστε το πλήκτρο ENTER:

    C: CD %windir%\system32\inetsrv

  3. Εκτελέστε μία από τις ακόλουθες εντολές:
    • Appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True
      Σημείωση Αυτό θα ρυθμίσετε αυτήν τη ρύθμιση μόνο για το "προεπιλεγμένη τοποθεσία Web" κατά τη δημιουργία ή την επεξεργασία του αρχείου Web.config στο ριζικό φάκελο της "Προεπιλεγμένη τοποθεσία Web".
    • appcmd set config "Default Web Site" /section:system.webServer/Security/requestFiltering -allowDoubleEscaping:True /commit:appHost
      Σημείωση Αυτό θα ρυθμίσετε αυτήν τη ρύθμιση μόνο για το "προεπιλεγμένη τοποθεσία Web" στο αρχείο applicationHost.config χρησιμοποιώντας μια ετικέτα θέση.
Ιδιότητες

Αναγνωριστικό άρθρου: 942076 - Τελευταία αναθεώρηση: 14 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια