Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Περίληψη

Η ενημέρωση ασφάλειας της Microsoft MS11-100 περιορίζει το μέγιστο αριθμό κλειδιών φορμών, αρχείων και μελών JSON μιας αίτησης HTTP σε 1000. Εξαιτίας αυτής της αλλαγής, οι εφαρμογές ASP.NET απορρίπτουν αιτήσεις οι οποίες περιλαμβάνουν περισσότερα από 1000 τέτοιου είδους στοιχεία. Οι αιτήσεις τέτοιου είδους που υποβάλλονται από υπολογιστές-πελάτες HTTP θα απορρίπτονται και θα εμφανίζεται ένα μήνυμα σφάλματος στο πρόγραμμα περιήγησης στο Web. Το μήνυμα σφάλματος συνήθως έχει κωδικό κατάστασης HTTP 500. Η ρύθμιση αυτού του νέου ορίου μπορεί να γίνει ανά εφαρμογή. Ανατρέξτε στην ενότητα "Επίλυση" για οδηγίες σχετικά με τη ρύθμιση παραμέτρων.


Συμπτώματα

Οι αιτήσεις ASP.NET που περιλαμβάνουν πολλά κλειδιά φορμών, αρχεία ή φορτίο JSON λαμβάνουν απόκριση σφάλματος από το διακομιστή. Το αρχείο καταγραφής εφαρμογής στο διακομιστή περιλαμβάνει μια καταχώρηση προειδοποίησης με Προέλευση η οποία είναι μια συγκεκριμένη έκδοση του ASP.NET και αναγνωριστικό συμβάντος 1309. Το αρχείο καταγραφής συμβάντων περιλαμβάνει ένα από τα ακόλουθα μηνύματα:


Μήνυμα 1:

Πληροφορίες εφαρμογής:
Τομέας εφαρμογής: /LM/W3SVC/1/ROOT/<Τομέας εφαρμογής>
Επίπεδο αξιοπιστίας: Μεσαίο
Εικονική διαδρομή της εφαρμογής: <Διαδρομή VDIR>
Διαδρομή εφαρμογής: <Διαδρομή εφαρμογής>
Όνομα υπολογιστή: <Όνομα υπολογιστή>
Πληροφορίες διαδικασίας:
Αναγνωριστικό διαδικασίας: 0001
Όνομα διεργασίας: w3wp.exe
Όνομα λογαριασμού: IIS APPPOOL\DefaultAppPool

Πληροφορίες εξαίρεσης:
Τύπος εξαίρεσης: HttpException
Μήνυμα εξαίρεσης: Τα κατά URL κωδικοποιημένα δεδομένα της φόρμας δεν είναι έγκυρα.
στο System.Web.HttpRequest.FillInFormCollection()
στο System.Web.HttpRequest.get_Form()
στο System.Web.HttpRequest.get_HasForm()
στο System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
στο System.Web.UI.Page.DeterminePostBackMode()
στο System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)


Μήνυμα 2:

Πληροφορίες εφαρμογής:
Τομέας εφαρμογής: /LM/W3SVC/1/ROOT/<Τομέας εφαρμογής>
Επίπεδο αξιοπιστίας: Μεσαίο
Εικονική διαδρομή της εφαρμογής: <Διαδρομή VDIR>
Διαδρομή εφαρμογής: <Διαδρομή εφαρμογής>
Όνομα υπολογιστή: <Όνομα υπολογιστή>

Πληροφορίες διαδικασίας:
Αναγνωριστικό διαδικασίας: 0001
Όνομα διεργασίας: w3wp.exe
Όνομα λογαριασμού: IIS APPPOOL\DefaultAppPool

Πληροφορίες εξαίρεσης:
Τύπος εξαίρεσης: InvalidOperationException
Μήνυμα εξαίρεσης: Η λειτουργία δεν είναι έγκυρη λόγω της τρέχουσας κατάστασης του αντικειμένου.
στο System.Web.HttpRequest.FillInFilesCollection()
στο System.Web.HttpRequest.get_Files()
στο FileUpload.Page_Load(Object sender, EventArgs e)
στο System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
στο System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
στο System.Web.UI.Control.OnLoad(EventArgs e)
στο System.Web.UI.Control.LoadRecursive()
στο System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint


Μήνυμα 3:

Πληροφορίες εφαρμογής:
Τομέας εφαρμογής: /LM/W3SVC/1/ROOT/<Τομέας εφαρμογής>
Επίπεδο αξιοπιστίας: Μεσαίο
Εικονική διαδρομή της εφαρμογής: <Διαδρομή VDIR>
Διαδρομή εφαρμογής: <Διαδρομή εφαρμογής>
Όνομα υπολογιστή: <Όνομα υπολογιστή>

Πληροφορίες διαδικασίας:
Αναγνωριστικό διαδικασίας: 0001
Όνομα διεργασίας: w3wp.exe
Όνομα λογαριασμού: IIS APPPOOL\DefaultAppPool

Πληροφορίες εξαίρεσης:
Τύπος εξαίρεσης: InvalidOperationException
Μήνυμα εξαίρεσης: Η λειτουργία δεν είναι έγκυρη λόγω της τρέχουσας κατάστασης του αντικειμένου.
στο System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)
στο System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32 depth)
στο System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String input, Int32 depthLimit, JavaScriptSerializer serializer)
στο System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
στο System.Web.Script.Serialization.JavaScriptSerializer.DeserializeObject(String input)
στο Failing.Page_Load(Object sender, EventArgs e)
στο System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
στο System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
στο System.Web.UI.Control.OnLoad(EventArgs e)
στο System.Web.UI.Control.LoadRecursive()
στο System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)



Το αρχείο καταγραφής IIS εμφανίζει μια καταχώρηση παρόμοια με την ακόλουθη:

2011-01-01 00:00:00 ::1 POST /machine/default.aspx - 80 - ::1 - 500 0 0 187




Αιτία

Η ενημέρωση ασφάλειας της Microsoft η οποία περιγράφεται στην ανακοίνωση MS11-100 αλλάζει σε 1.000 τον προεπιλεγμένο μέγιστο αριθμό κλειδιών φορμών, αρχείων και μελών JSON που είναι αποδεκτά από το ASP.NET σε αιτήσεις. Αυτή η αλλαγή πραγματοποιήθηκε για την αντιμετώπιση της ευπάθειας άρνησης υπηρεσίας που καταγράφεται στην ανακοίνωση ασφάλειας της Microsoft MS11-100.


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

Για τις εφαρμογές που συμπληρώνουν αυτό το όριο για κλειδιά φορμών ή αρχεία, μπορεί να τροποποιηθεί η ρύθμιση ASP.NET appSetting aspnet:MaxHttpCollectionKeys με τον τρόπο που υποδεικνύεται στο ακόλουθο αρχείο ρύθμισης παραμέτρων μιας εφαρμογής ASP.NET. Αυτή η ρύθμιση αντιμετωπίζει τα μηνύματα σφάλματος 1 και 2 που περιγράφονται στην ενότητα "Συμπτώματα".

<configuration>
<appSettings>
<add key="aspnet:MaxHttpCollectionKeys" value="1000" />
</appSettings>
</configuration>



Σημείωση Εάν χρησιμοποιείτε ASP.NET 1.1 σε σύστημα που βασίζεται σε επεξεργαστή x86, η ρύθμιση προσαρμόζεται με την προσθήκη μιας τιμής DWORD στο ακόλουθο κλειδί του μητρώου:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys

Εάν χρησιμοποιείτε ASP.NET 1.1 σε σύστημα που βασίζεται σε επεξεργαστή x86, η ρύθμιση προσαρμόζεται με την προσθήκη μιας τιμής DWORD στο ακόλουθο κλειδί του μητρώου:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\ASP.NET\1.1.4322.0\MaxHttpCollectionKeys




Για τις εφαρμογές που συμπληρώνουν αυτό το όριο για φορτία JSON, μπορεί να τροποποιηθεί η ρύθμιση ASP.NET appSetting aspnet:MaxJsonDeserializerMembers με τον τρόπο που υποδεικνύεται στο ακόλουθο αρχείο ρύθμισης παραμέτρων μιας εφαρμογής ASP.NET. Αυτή η ρύθμιση αντιμετωπίζει το μήνυμα σφάλματος 3 που περιγράφεται στην ενότητα "Συμπτώματα".

<configuration>
<appSettings>
<add key="aspnet:MaxJsonDeserializerMembers" value="1000" />
</appSettings>
</configuration>




Σημείωση Η αύξηση αυτής της τιμής σε αριθμό μεγαλύτερο από την προεπιλεγμένη ρύθμιση αυξάνει τις πιθανότητες εμφάνισης του θέματος ευπάθειας άρνησης υπηρεσίας που περιγράφεται στο δελτίο ασφαλείας MS11-100 στο διακομιστή σας.


Αναφορές

Για περισσότερες πληροφορίες σχετικά με το ενημερωτικό δελτίο ασφαλείας MS11-100, ανατρέξτε στο ακόλουθο άρθρο TechNet:

Ανακοινώσεις ασφαλείας της Microsoft: MS11-100 - Κρίσιμη Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής βάσης της Microsoft:

2638420 MS11-100: Ένα θέμα ευπάθειας στο .NET Framework θα μπορούσε να επιτρέψει προβιβασμό δικαιωμάτων: 29 Δεκεμβρίου 2011

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×