Έλεγχος για θέματα κανονικοποίησης του ASP.NET με χρήση της λειτουργικής μονάδας HTTP

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 887289 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Περίληψη

Για να βοηθήσει τους πελάτες της στην προστασία των εφαρμογών ASP.NET, η Microsoft διαθέτει μια λειτουργική μονάδα HTTP που υλοποιεί βέλτιστες πρακτικές κανονικοποίησης. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
887459 Προγραμματικός έλεγχος για ζητήματα κανονικοποίησης με το ASP.NET
Για πρόσθετες πληροφορίες σχετικά με τον τρόπο καθορισμού της έκδοσης ASP.NET, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
318785 Εξακρίβωση της εγκατάστασης Service Pack στο .NET Framework

Συμπτώματα

Όταν ένας διακομιστής Web λαμβάνει μια διεύθυνση URL, ο διακομιστής αντιστοιχίζει την αίτηση σε μια διαδρομή συστήματος αρχείων από την οποία καθορίζεται η απόκριση. Η ρουτίνα κανονικοποίησης που χρησιμοποιείται για την αντιστοίχιση της αίτησης πρέπει να αναλύσει σωστά τη διεύθυνση URL, ώστε να αποφύγει την εξυπηρέτηση ή την επεξεργασία μη αναμενόμενου περιεχομένου. Τα θέματα κανονικοποίησης που δεν έχουν επιλυθεί μπορούν να οδηγήσουν σε απροσδόκητα αποτελέσματα. Για περισσότερες πληροφορίες σχετικά με την κανονικοποίηση, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web (στα αγγλικά):
http://msdn2.microsoft.com/en-us/library/aa302420.aspx

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

Microsoft.Web.ValidatePathModule.dll - λειτουργική μονάδα HTTP

Πληροφορίες λήψης

Το ακόλουθο αρχείο είναι διαθέσιμο για λήψη από το Κέντρο λήψης της Microsoft (Microsoft Download Center):

Σύμπτυξη αυτής της εικόναςΑνάπτυξη αυτής της εικόνας
Λήψη
Άμεση λήψη του πακέτου VPModule.msi.

Ημερομηνία κυκλοφορίας: 7 Οκτωβρίου 2004

Για περισσότερες πληροφορίες σχετικά με τον τρόπο λήψης αρχείων υποστήριξης της Microsoft, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
119591 Τρόπος απόκτησης αρχείων υποστήριξης της Microsoft από ηλεκτρονικές υπηρεσίες
Η Microsoft έχει ελέγξει αυτό το αρχείο για ιούς. Η Microsoft χρησιμοποίησε το πιο πρόσφατο λογισμικό εντοπισμού ιών που ήταν διαθέσιμο κατά την ημερομηνία δημοσίευσης του αρχείου. Το αρχείο είναι αποθηκευμένο σε διακομιστές με ενισχυμένη ασφάλεια, οι οποίοι βοηθούν στην αποτροπή μη εξουσιοδοτημένων αλλαγών στο αρχείο.

Προϋποθέσεις

Το αρχείο VPModule.msi έχει σχεδιαστεί για το Microsoft .NET Framework 32 bit.

Πριν να εγκαταστήσετε το αρχείο VPModule.msi, δημιουργήστε αντίγραφα ασφαλείας όλων των εμφανίσεων του αρχείου Machine.config στον υπολογιστή σας. Για να δημιουργήσετε ένα αντίγραφο ασφαλείας του αρχείου Machine.config, ακολουθήστε τα εξής βήματα:
  1. Κάντε κλικ στο μενού Έναρξη (Start), κατόπιν στην επιλογή Εκτέλεση (Run), πληκτρολογήστε cmd και τέλος κάντε κλικ στο κουμπί ΟΚ.
  2. Εντοπίστε κάθε έκδοση του αρχείου Machine.config. Το αρχείο ή τα αρχεία Machine.config βρίσκονται στον παρακάτω φάκελο, όπου <αριθμός_έκδοσης_framework> είναι η έκδοση του Microsoft .NET Framework που έχετε εγκαταστήσει:
    %windir%\Microsoft.NET\Framework\<αριθμός_έκδοσης_framework>\CONFIG
    Για παράδειγμα, εάν το .NET Framework 1.1 είναι εγκατεστημένο στη μονάδα δίσκου C, πληκτρολογήστε την παρακάτω εντολή και στη συνέχεια πιέστε το πλήκτρο ENTER:
    cd /d %windir%\microsoft.net\framework\v1.1.4322\config
  3. Πληκτρολογήστε την παρακάτω εντολή για να δημιουργήσετε ένα αντίγραφο ασφαλείας του αρχείου Machine.config και στη συνέχεια πιέστε το πλήκτρο ENTER:
    copy machine.config machine.config.bak
Επαναλάβετε αυτά τα βήματα για κάθε εμφάνιση του .NET Framework που είναι εγκατεστημένη στο σύστημά σας.

Πληροφορίες εγκατάστασης

Η Microsoft έχει κυκλοφορήσει ένα πακέτο εγκατάστασης που ονομάζεται VPModule.msi. Το αρχείο VPModule.msi εγκαθιστά το αρχείο Microsoft.Web.ValidatePathModule.dll στο σύστημά σας. Η εγκατάσταση ενημερώνει το αρχείο ή τα αρχεία Machine.config με μια νέα καταχώρηση λειτουργικής μονάδας HTTP σε όλες τις εγκατεστημένες εκδόσεις του .NET Framework.

Για να χρησιμοποιήσετε το πακέτο εγκατάστασης, κάντε λήψη του αρχείου VPModule.msi, κάντε διπλό κλικ στο πακέτο για να ξεκινήσετε την εγκατάσταση και μετά ακολουθήστε τις οδηγίες εγκατάστασης.

Ενέργειες του αρχείου VPModule.msi

Το πρόγραμμα εγκατάστασης εξάγει πρώτα ένα αρχείο που ονομάζεται Microsoft.Web.ValidatePathModule.dll. Στη συνέχεια, το πρόγραμμα εγκατάστασης ενημερώνει όλα τα αρχεία Machine.config που υπάρχουν στο σύστημα, ώστε τα αρχεία να έχουν μια καταχώρηση παρόμοια με την παρακάτω:
    <system.web>
        <httpModules>
            <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
        </httpModules>
    </system.web>
Το πρόγραμμα εγκατάστασης προσθέτει, κατόπιν, το αρχείο Microsoft.Web.ValidatePathModule.dll στον καθολικό χώρο αποθήκευσης συγκροτήσεων (Global Assembly Cache - GAC).

Για τους προγραμματιστές που θέλουν να κατανοήσουν τη λειτουργία του αρχείου Microsoft.Web.ValidatePathModule.dll, είναι διαθέσιμος ο πηγαίος κώδικας:
namespace Microsoft.Web {
    public class ValidatePathModule : IHttpModule {
        public ValidatePathModule() {
        }
        void IHttpModule.Init(HttpApplication app) {
            app.BeginRequest += new EventHandler(this.OnBeginRequest);
        }
        void IHttpModule.Dispose() {
        }
        void OnBeginRequest(Object source, EventArgs eventArgs) {
            HttpRequest request = (source as HttpApplication).Request;
            string physicalPath = request.PhysicalPath;
            if (request.Path.IndexOf('\\') >= 0 || Path.GetFullPath(physicalPath) != physicalPath) {
                throw new HttpException(404, "Not Found");
            }
        }
    }
}
Για πληροφορίες σχετικά με τους διακόπτες γραμμής εντολών που μπορείτε να χρησιμοποιήσετε για να εγκαταστήσετε τη λειτουργική μονάδα, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web (στα αγγλικά):
http://msdn2.microsoft.com/en-us/library/aa367988.aspx

Πληροφορίες επαλήθευσης εγκατάστασης

Όταν η λειτουργική μονάδα είναι σωστά εγκατεστημένη, υπάρχει το παρακάτω κλειδί μητρώου:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{30EFFF0C-573D-46FB-8AD5-00887289261A}
Σημείωση Αυτό το κλειδί μητρώου δεν υπάρχει στο σύστημα, εάν εγκαταστήσετε τη λειτουργική μονάδα HTTP με μη αυτόματο τρόπο, όπως περιγράφεται στην ενότητα "Πληροφορίες προσαρμοσμένης εγκατάστασης". Η επιλογή /a εξάγει μόνο αρχεία. Δεν ενημερώνει το μητρώο.

Πληροφορίες κατάργησης

Για να καταργήσετε αυτές τις αλλαγές, εκτελέστε το αρχείο VPModule.msi και ενεργοποιήστε την επιλογή Remove. Εναλλακτικά, χρησιμοποιήστε το εικονίδιο Προσθαφαίρεση προγραμμάτων (Add/Remove Programs) στον Πίνακα Ελέγχου (Control Panel).

Πληροφορίες εγκατάστασης χωρίς παρακολούθηση

Χρησιμοποιήστε την παρακάτω εντολή, για να εγκαταστήσετε αυτές τις αλλαγές σε κατάσταση λειτουργίας χωρίς παρακολούθηση:
msiexec /i vpmodule.msi /qb-
Χρησιμοποιήστε την παρακάτω εντολή, για να καταργήσετε αυτές τις αλλαγές σε κατάσταση λειτουργίας χωρίς παρακολούθηση:
msiexec /x vpmodule.msi /qb-

Πληροφορίες προσαρμοσμένης εγκατάστασης

Για την εγκατάσταση της λειτουργικής μονάδας HTTP με μη αυτόματο τρόπο, ακολουθήστε τα παρακάτω βήματα:
  1. Δημιουργήστε αντίγραφα ασφαλείας του αρχείου ή των αρχείων Machine.config. Για περισσότερες πληροφορίες σχετικά με αυτήν τη διαδικασία, ανατρέξτε στην ενότητα "Προϋποθέσεις".
  2. Κάντε λήψη του πακέτου. Για περισσότερες πληροφορίες σχετικά με αυτήν τη διαδικασία, ανατρέξτε στην ενότητα "Πληροφορίες λήψης".
  3. Χρησιμοποιήστε την παρακάτω εντολή, για να εξαγάγετε το αρχείο Microsoft.Web.ValidatePathModule.dll από το αρχείο VPModule.msi σε μια θέση της επιλογής σας:
    msiexec /a vpmodule.msi
  4. Χρησιμοποιήστε την παρακάτω εντολή, για να αντιγράψτε τη λειτουργική μονάδα στον καθολικό χώρο αποθήκευσης συγκροτήσεων (GAC):
    gacutil -i microsoft.web.validatepathmodule.dll
    Σημείωση Η λειτουργική μονάδα εξάγεται σε ένα φάκελο που ονομάζεται Microsoft ValidatePath Module και βρίσκεται στη θέση που έχετε καθορίσει.
  5. Επεξεργαστείτε το αρχείο ή τα αρχεία Machine.config, για να προσθέσετε την παρακάτω καταχώρηση στην ενότητα <httpModules>:
    <add name="ValidatePathModule" type="Microsoft.Web.ValidatePathModule, Microsoft.Web.ValidatePathModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eba19824f86fdadd"/>
    

Γνωστά θέματα

Τα παρακάτω είναι γνωστά θέματα:
  • Το πρόγραμμα εγκατάστασης εξασφαλίζει ότι το αρχείο ή τα αρχεία Machine.config έχουν ενημερωθεί με επιτυχία με μια καταχώρηση <httpModule> για το αρχείο Microsoft.Web.ValidatePathModule.dll. Ωστόσο, υπό ορισμένες συνθήκες, αυτό ενδέχεται να μην εμποδίσει την εμφάνιση της συμπεριφοράς που περιγράφεται.

    Αυτή η συμπεριφορά θα μπορούσε να προκύψει, εάν υπάρχει ένα αρχείο Web.config και το αρχείο Web.config διαγράψει τη λίστα που ορίζεται στο επίπεδο Machine.config. Για παράδειγμα, αυτή η συμπεριφορά μπορεί να προκληθεί από μια καταχώρηση παρόμοια με την παρακάτω σε ένα αρχείο Web.config:
    <httpModules>
        <clear/>
    </httpModules>
    
    Αυτή η ρύθμιση παραμέτρων αποτρέπει την εκτέλεση της λειτουργικής μονάδας μετριασμού σε αυτήν τη συγκεκριμένη εφαρμογή. Αυτή η ρύθμιση παραμέτρων συνήθως προκύπτει όταν μια εφαρμογή δεν θέλει να χρησιμοποιήσει τις λειτουργικές μονάδες HTTP που ορίζονται στο επίπεδο Machine.config, αλλά αντίθετα θέλει να διαγράψει τη λίστα και στη συνέχεια να ορίσει μια νέα λίστα που αφορά συγκεκριμένα την τρέχουσα εφαρμογή.
  • Εάν εγκαταστήσετε διαφορετική έκδοση του .NET Framework, πρέπει να απεγκαταστήσετε και να εγκαταστήσετε ξανά το αρχείο VPModule.msi.
  • Για πρόσθετες πληροφορίες σχετικά με τα θέματα που αφορούν τις υπηρεσίες Reporting Services του SQL Server και το αρχείο VPModule.msi, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
    887787 Ενδέχεται να λάβετε μηνύματα λάθους από τις υπηρεσίες Reporting Services, μετά την εγκατάσταση της λειτουργικής μονάδας ASP.NET ValidatePath

Αναφορές

Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
887405 Τρόπος χρήσης του Windows Installer και της Πολιτικής ομάδας (Group Policy) για την ανάπτυξη του VPModule.msi σε έναν τομέα της υπηρεσίας καταλόγου Active Directory
Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
887404 Τρόπος χρήσης του Systems Management Server 2003 για την ανάπτυξη της λειτουργικής μονάδας ValidatePath
Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
887290 Τρόπος χρήσης του εργαλείου σάρωσης για τη λειτουργική μονάδα ASP.NET ValidatePath (VPModuleScanner.js)
Για περισσότερες πληροφορίες σχετικά με τις καταστάσεις περιόδων λειτουργίας, επισκεφτείτε την ακόλουθη τοποθεσία της Microsoft στο Web (στα αγγλικά):
http://msdn2.microsoft.com/en-us/library/87069683(vs.71).aspx

Ιδιότητες

Αναγν. άρθρου: 887289 - Τελευταία αναθεώρηση: Δευτέρα, 3 Δεκεμβρίου 2007 - Αναθεώρηση: 3.8
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 3
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.1 Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 1
  • Microsoft .NET Framework Software Development Kit 1.0 Service Pack 2
Λέξεις-κλειδιά: 
kbsecurity kbtshoot KB887289

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com