Τρόπος αποτροπής ζητημάτων ασφαλείας δέσμης ενεργειών μεταξύ τοποθεσιών

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 252985 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ενημέρωση
Αυτό το άρθρο ισχύει για τα Windows 2000. Υποστήριξη για τα Windows 2000 λήγει στις 13 Ιουλίου 2010. Το Κέντρο λύσεων τέλος της υποστήριξης των Windows 2000 είναι ένα σημείο εκκίνησης για το σχεδιασμό σας στρατηγικής μετεγκατάστασης από τα Windows 2000. Για περισσότερες πληροφορίες, δείτε το Η πολιτική κύκλου ζωής υποστήριξης της Microsoft.
Ανάπτυξη όλων | Σύμπτυξη όλων

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

Περίληψη

Σελίδες HTML που δημιουργήθηκε δυναμικά μπορεί να αυξήσει τους κινδύνους ασφαλείας εάν εισροές Οι επικυρωμένες είτε τρόπο στο ή τον τρόπο εκτός. Κακόβουλη δέσμη ενεργειών μπορεί να ενσωματωθεί μέσα εισόδου που υποβάλλονται σε σελίδες Web και εμφανίζονται προγράμματα περιήγησης ως προέρχονται από αξιόπιστη πηγή. Αυτό το ζήτημα αναφέρεται ως ένα ζήτημα ασφαλείας μεταξύ τοποθεσιών με δέσμες ενεργειών. Αυτό το άρθρο ασχολείται με θέματα ασφαλείας δεσμών ενεργειών μεταξύ τοποθεσιών, τις επιπτώσεις και την πρόληψη.

Περισσότερες πληροφορίες

Το πρόβλημα

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

Επιπτώσεις

Αν δεν επικυρωθεί εισόδου σας δυναμικών σελίδων Web, ενδέχεται να αντιμετωπίσετε τα ακόλουθα προβλήματα:
  • Να διακυβεύεται η ακεραιότητα των δεδομένων.
  • Cookies μπορεί να οριστεί και να διαβάσετε.
  • Μπορούν να υποκλαπούν από το χρήστη.
  • Κακόβουλες δέσμες ενεργειών μπορεί να εκτελεστεί από το πρόγραμμα-πελάτη στο περιβάλλον αξιόπιστη πηγή.
Ποιες σελίδες Web κινδυνεύουν; Ουσιαστικά, το ζήτημα επηρεάζει δημιουργίας δυναμική σελίδα που βασίζεται σε δεδομένα εισόδου που δεν επικυρώθηκε. Τυπικά παραδείγματα περιλαμβάνουν τους ακόλουθους τύπους ιστοσελίδων:
  • Μηχανές αναζήτησης που επιστρέφουν αποτελέσματα σελίδες με βάση το χρήστη.
  • Σελίδες πρόσβασης που αποθηκεύουν λογαριασμούς χρηστών σε βάσεις δεδομένων, τα cookies και ούτω καθεξής και αργότερα εγγράψει το όνομα χρήστη στον υπολογιστή-πελάτη.
  • Φόρμες Web που επεξεργάζονται πληροφορίες πιστωτικών καρτών.

Πρόληψη

Η ενότητα αυτή παρουσιάζει διάφορες προσεγγίσεις για την πρόληψη επιθέσεις ασφαλείας δεσμών ενεργειών μεταξύ τοποθεσιών. Αξιολόγηση για να καθορίσει ποιες τεχνικές θα λειτουργήσει καλύτερα για την περίπτωσή σας συγκεκριμένες. Είναι σημαντικό να σημειωθεί ότι σε όλες τις τεχνικές που επικύρωση δεδομένων που λαμβάνετε από εισόδου και δεν σας αξιόπιστη δέσμη ενεργειών. Ουσιαστικά, πρόληψη σημαίνει ακολουθήσετε ορθής πρακτικής κωδικοποίησης εκτελώντας έλεγχοι στην είσοδο σας σε ρουτίνες σας.

Η ακόλουθη λίστα περιγράφει τις γενικές προσεγγίσεις για να αποτρέψετε επιθέσεις δεσμών ενεργειών μεταξύ τοποθεσιών:
  • Κωδικοποίηση εξόδου με βάση παραμέτρους εισόδου.
  • Φίλτρο παραμέτρους εισόδου για ειδικούς χαρακτήρες.
  • Φίλτρο εξόδου με βάση τις παραμέτρους εισόδου για ειδικούς χαρακτήρες.
Όταν φιλτράρετε ή κωδικοποίηση, πρέπει να καθορίσετε ένα σύνολο χαρακτήρων για τις ιστοσελίδες σας για να βεβαιωθείτε ότι το φίλτρο ελέγχει για κατάλληλη ειδικούς χαρακτήρες. Ακολουθίες byte που θεωρούνται ειδικοί με βάση το συγκεκριμένο σύνολο χαρακτήρων πρέπει να φιλτράρετε τα δεδομένα που εισάγονται στις ιστοσελίδες σας. Δημοφιλείς charset είναι ISO 8859-1, που ήταν η προεπιλογή σε παλαιότερες εκδόσεις της HTML και HTTP. Πρέπει να λαμβάνουν σε θέματα μετάφρασης λογαριασμού όταν αλλάξετε αυτές τις παραμέτρους.

Κωδικοποίηση εξόδου με βάση τις παραμέτρους εισόδου για ειδικούς χαρακτήρες

Κωδικοποίηση των δεδομένων που λαμβάνονται ως είσοδο, όταν γράφετε ως HTML. Αυτό η τεχνική είναι αποτελεσματική σε δεδομένα που δεν επικυρώθηκε για κάποιο λόγο κατά τη διάρκεια της εισαγωγής. Χρησιμοποιώντας τεχνικές όπως URLEncode και HTMLEncode, μπορείτε να αποτρέψετε κακόβουλη δέσμη ενεργειών από την εκτέλεση.

Τα ακόλουθα τμήματα κώδικα παρουσιάζουν τον τρόπο χρήσης URLEncode και HTMLEncode από σελίδες Active Server Pages (ASP):
<%
      var BaseURL = http://www.mysite.com/search2.asp?searchagain=;
      Response.write("<a href=\"" + BaseUrl +
      Server.URLEncode(Request.QueryString("SearchString")) +
      "\">click-me</a>");
%>
<% Response.Write("Hello visitor <I>" +
      Server.HTMLEncode(Request.Form("UserName")) +
      "</I>");
%>
				
Εάν η κωδικοποίηση του HTML και διευθύνσεων URL, ίσως χρειαστεί να καθορίσετε την κωδικοσελίδα ως θα εάν θέλετε να φιλτράρετε τα δεδομένα.

Είναι σημαντικό να σημειωθεί ότι η τηλεφωνική HTMLEncode στη συμβολοσειρά που θα εμφανιστεί θα αποτραπεί οποιαδήποτε δέσμη ενεργειών σε αυτήν την εκτέλεση και επομένως αποτρέπει το πρόβλημα.

Φίλτρο παραμέτρους εισόδου για ειδικούς χαρακτήρες

Φιλτράρισμα εισόδου λειτουργεί καταργώντας ορισμένα ή όλα τα ειδικούς χαρακτήρες από εισόδου σας. Ειδικοί χαρακτήρες είναι χαρακτήρες που επιτρέπουν τη δέσμη ενεργειών για να δημιουργηθούν μέσα σε μια ροή HTML. Ειδικοί χαρακτήρες περιλαμβάνουν τα εξής:
< > " ' % ; ) ( & + -
				
Σημειώστε ότι μεμονωμένα περίπτωσή σας ενδέχεται να δικαιολογούν το φιλτράρισμα συμβολοσειρές πέρα από τους ειδικούς χαρακτήρες ή επιπλέον χαρακτήρες.

Ενώ το φιλτράρισμα μπορεί να είναι μια αποτελεσματική μέθοδο, υπάρχουν ορισμένες προειδοποιήσεις:
  • Φιλτράρισμα ενδέχεται να μην είναι κατάλληλη για ορισμένα δεδομένα εισόδου. Για παράδειγμα, σε σενάρια όπου λαμβάνετε <text> εισόδου από μια φόρμα HTML, μπορεί αντί για αυτό επιλέξετε μέθοδος κωδικοποίησης (δείτε παρακάτω).</text>
  • Ορισμένες φιλτραρισμένη χαρακτήρες στην πραγματικότητα μπορεί να απαιτείται εισαγωγή δέσμης ενεργειών του διακομιστή.
Το ακόλουθο δείγμα φίλτρο, το οποίο είναι γραμμένο σε JavaScript, δείχνει τον τρόπο για την κατάργηση ειδικών χαρακτήρων:
function RemoveBad(strTemp) { 
    strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,""); 
    return strTemp;
} 
				
Ο παρακάτω κώδικας επεξεργάζεται από το χρήστη πριν από την αποθήκευση για μελλοντική χρήση.
<% Session("StoredPreference") = RemoveBad(Request.Cookies("UserColor"));
         var TempStr = RemoveBad(Request.QueryString("UserName"));				

Φίλτρο εξόδου με βάση τις παραμέτρους εισόδου για ειδικούς χαρακτήρες

Η τεχνική αυτή είναι παρόμοια με το φιλτράρισμα εισόδου εκτός του ότι φιλτράρετε χαρακτήρες που εγγράφονται στο πρόγραμμα-πελάτη. Ενώ αυτό μπορεί να είναι μια αποτελεσματική μέθοδο, μπορεί να υποβάλλει ένα πρόβλημα για ιστοσελίδες που εγγράψει στοιχεία HTML.

Για παράδειγμα, σε μια σελίδα που εγγράφει out<table>στοιχεία, θα διαγράψετε μια γενική λειτουργία που καταργεί τους ειδικούς χαρακτήρες του < and=""> χαρακτήρες που ruins το<table>η ετικέτα. Επομένως, προκειμένου η τεχνική αυτή είναι χρήσιμη, που θα φιλτράρετε μόνο δεδομένα που μεταβιβάζονται στο ή τα δεδομένα που προηγουμένως είχε εισαχθεί από το χρήστη και αποθηκεύονται σε μια βάση δεδομένων.</table></table>

Πιθανές πηγές δεδομένων κακόβουλο

Ενώ το ζήτημα ισχύει για κάθε σελίδα που χρησιμοποιεί εισόδου σε δυναμικά Δημιουργία HTML, ακολουθούν ορισμένες πιθανές πηγές κακόβουλα δεδομένα για να σας βοηθήσει σημείου ελέγχου για πιθανούς κινδύνους ασφαλείας:
  • Συμβολοσειρά ερωτήματος
  • Τα cookies
  • Καταχωρημένων δεδομένων
  • Διευθύνσεις URL και τεμάχια διευθύνσεις URL, όπως PATH_INFO
  • Δεδομένα που ανακτώνται από τους χρήστες που είναι μόνιμες κατά κάποιο τρόπο όπως σε μια βάση δεδομένων

Συμπέρασμα

Εν κατακλείδι, οι παρακάτω είναι βασικά σημεία, να θυμάστε σχετικά με το πρόβλημα ασφαλείας δεσμών ενεργειών μεταξύ τοποθεσιών:
  • Το ζήτημα επηρεάζει δημιουργίας δυναμική σελίδα που βασίζεται σε δεδομένα εισόδου που δεν επικυρώθηκε.
  • Παράλειψη εκτελεί έλεγχο δεδομένων εισόδου μπορούν να έχουν συνέπειες στην ασφάλεια μη αναμενόμενο. Το πρόβλημα είναι αποτραπεί μέσω καλή ανάπτυξη προτύπων, όπως η επικύρωση δεδομένων εισόδου.
  • Πρέπει να αξιολογήσουν λύσεις σε ένα ανά τοποθεσία, σελίδα, και ακόμη και με βάση το πεδίο και χρησιμοποιεί μια τεχνική που έχει νόημα.

Αναφορές

Για περισσότερες πληροφορίες, ανατρέξτε στο ακόλουθο συμβουλευτικό δελτίο από τον υπολογιστή έκτακτης ανάγκης απόκριση ομάδας (CERT) στο πανεπιστήμιο Carnegie Mellon στο:
http://www.CERT.org/advisories/CA-2000-02.HTML
Για περισσότερες πληροφορίες, κάντε κλικ στους αριθμούς των άρθρων παρακάτω, για να προβάλετε τα άρθρα της Γνωσιακής Βάσης της Microsoft:
253117Αποτροπή του Internet Explorer και το Outlook Express διατοποθεσιακή ζητήματα ασφαλείας δέσμης ενεργειών
253119 Τον τρόπο αναθεώρησης κώδικα ASP για την ευπάθεια CSSI
253120 Τον τρόπο αναθεώρησης Visual InterDev δημιούργησε κώδικα για ευπάθεια CSSI
253121 Τον τρόπο αναθεώρησης του MTS/ASP κώδικα για ευπάθεια CSSI

Ιδιότητες

Αναγν. άρθρου: 252985 - Τελευταία αναθεώρηση: Κυριακή, 29 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Windows 2000 Server
Λέξεις-κλειδιά: 
kbcodesnippet kbcssi kbhowto kbsecurity kbmt KB252985 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:252985

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

 

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