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

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

Τι είναι η υπέρβαση του buffer String Χειρισμός

; τρύπες ασφαλείας στο λογισμικό μπορεί να έρθει σε περισσότερες μορφές από ό, τι οι προγραμματιστές μπορούν να φανταστούν . Μία από αυτές τις επιθέσεις είναι η υπέρβαση του buffer , όταν ένας εισβολέας που παρέχει περισσότερες πληροφορίες από ό, τι ένα πρόγραμμα μπορεί να χειριστεί . Πιο συγκεκριμένα σενάρια προγραμματισμού , όπως ο προγραμματισμός του συστήματος ή του προγραμματισμού χαμηλού επιπέδου C , ρυθμιστικά χορδών είναι ευάλωτα στην εκμετάλλευση . Ορισμένες τεχνικές χειρισμού string μπορεί να χρησιμοποιηθεί για να αποτρέψει τις επιθέσεις αυτές . Αυτές οι τεχνικές περιλαμβάνουν την παρακολούθηση του μεγέθους των χορδών, ελέγχοντας τα όρια ρυθμιστικό και χρησιμοποιώντας ασφαλείς συναρτήσεις συμβολοσειράς - χειρισμού . String Buffer Υπέρβαση
Η

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

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

Η χρήση Μεγάλες Buffers
Η

Στις γλώσσες υψηλότερου επιπέδου , ​​όπως η C # ή Java , ο προγραμματιστής μπορεί να χρησιμοποιήσει συγκεκριμένα αντικείμενα εισόδου που περιέχουν μεγάλες ρυθμιστικά . BufferedReader Java είναι ένα καλό παράδειγμα αυτού . Ο χρήστης μπορεί να δημιουργήσει αυτό το αντικείμενο με ένα μεγάλο γαμώ ή να κολλήσει με μεγάλο προεπιλεγμένο μέγεθος του buffer για να χειριστεί την είσοδο . Το αντικείμενο στη συνέχεια χειρίζεται το κείμενο στο ρυθμιστικό διάλυμα . Σε γλώσσες χαμηλότερου επιπέδου όπως η C , ο προγραμματιστής θα χρησιμοποιήσει πιθανότατα συστοιχίες χαρακτήρα . Στην περίπτωση αυτή , ο προγραμματιστής πρέπει να εξασφαλίσει ότι ο χαρακτήρας συστοιχία λήψη δεδομένων παραμένει αρκετά μεγάλο για να χειριστεί κάθε πιθανό μέγεθος των δεδομένων .
Εικόνων Χρησιμοποιήστε Secure Λειτουργίες
Η

Όσον αφορά την είσοδο του χρήστη πηγαίνει , η γλώσσα προγραμματισμού C χρησιμοποιεί διαφορετικές λειτουργίες για διάφορες εργασίες εισόδου . Δεν είναι όλες αυτές οι επιλογές είναι ασφαλείς . Για παράδειγμα, η συνάρτηση παίρνει δεν ελέγχει την είσοδο του χρήστη σε όλους , και θα επιτρέψει σε τίποτα να περάσει στο πρόγραμμα . Η λειτουργία strcpy δεν θα εκτελέσει ελέγχου ορίων . Αντ 'αυτού , άλλες ασφαλείς λειτουργίες θα πρέπει να χρησιμοποιούνται , όπως οι fgets ή Strncpy λειτουργίες .
Η
εικόνων

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

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