Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Υπολογιστών Γλώσσες

Συνέπειες της υπερχειλίσεις

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

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

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

Η Ασφάλεια ευπάθειας
Η

Σε advertentm υπερφόρτωση buffer μπορεί να προκαλέσει τη διακοπή προγραμμάτων , αλλά οι hackers θα μπορούσε να αναγκάσει σκόπιμα μια υπερφόρτωση buffer να θέσει σε κίνδυνο τη λειτουργία ενός προγράμματος . Για παράδειγμα , υποδοχή μνήμης ενός buffer θα μπορούσε να είναι κοντά στην υποδοχή μνήμης που κατέχει μια συγκεκριμένη εντολή εκτελείται το πρόγραμμα . Ένας χάκερ μπορεί να ανακαλύψει το μέγεθος του buffer , και την απόσταση σε υποδοχή μνήμης της εντολής από το τέλος του buffer . Θα μπορούσε στη συνέχεια να αναγκάσει μια υπερχείλιση μνήμης που θα υπερ- γράψει τα δεδομένα μεταξύ του ρυθμιστικού και υποδοχή μνήμης της εντολής , στην συνέχεια πάνω - γράψει υποδοχή μνήμης της εντολής να αντικαταστήσει την εντολή με ένα δικό του σχεδιασμό . Όταν το πρόγραμμα καλεί υποδοχή μνήμης του εν λόγω εντολή και εκτελεί το περιεχόμενό της , θα την εκτέλεση κώδικα του χάκερ , αντί του ενός ο προγραμματιστής που προορίζεται .
Εικόνων Πρόληψη Ρυθμιστικό υπερχειλίσεις
Η

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

Η

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα