Σπίτι Ανάπτυξη Τι δεν είναι ασφαλές; - ορισμός από την τεχνολογία

Τι δεν είναι ασφαλές; - ορισμός από την τεχνολογία

Πίνακας περιεχομένων:

Anonim

Ορισμός - Τι σημαίνει Ασφαλής;

Η ανασφάλεια είναι μια λέξη-κλειδί προγραμματισμού C (C #) που χρησιμοποιείται για να δηλώσει μια ενότητα κώδικα που δεν διαχειρίζεται το Common Language Runtime (CLR) του .NET Framework ή μη διαχειριζόμενου κώδικα. Το ανασφαλές χρησιμοποιείται στη δήλωση ενός τύπου ή μέλους ή για τον καθορισμό του κωδικού μπλοκ. Όταν χρησιμοποιείται για να καθορίσετε μια μέθοδο, το πλαίσιο ολόκληρης της μεθόδου δεν είναι ασφαλές.


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

Η Techopedia εξηγεί την ανασφάλεια

Τα μη ασφαλή δεδομένα αφορούν τα δεδομένα μνήμης που δεν ελέγχονται από το CLR, όπως οι λαβές των Windows ή οι δείκτες που έχουν εκχωρηθεί μέσω μιας νέας μεθόδου.


Ο μη ασφαλής κώδικας αναφέρεται σε μια δήλωση ή μια μέθοδο που προσεγγίζει μη διαχειριζόμενη μνήμη, συμπεριλαμβανομένων:

  • Κλήσεις στα API των Windows
  • Καλεί σε στοιχεία διεπαφής μεθόδου μοντέλου αντικειμένου (COM) που περιλαμβάνουν δομές με δείκτες ή κώδικα κρίσιμης απόδοσης.

Ο μη ασφαλής κώδικας χρησιμοποιείται κυρίως όταν οι λειτουργίες περιλαμβάνουν δείκτες και, γενικά, όταν ο κώδικας εκτελείται εκτός του διαχειριζόμενου περιβάλλοντος. Η μη ασφαλή σύνταξη κώδικα απαιτεί την προδιαγραφή της επιλογής "/ nonsafe" με την εντολή compilation.


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


Επειδή η CLR διατηρεί την ασφάλεια και την ασφάλεια τύπου, το C # δεν υποστηρίζει την αριθμητική ένδειξη του διαχειριζόμενου κώδικα, σε αντίθεση με το C / C ++. Η ανασφαλής λέξη-κλειδί επιτρέπει τη χρήση δείκτη σε μη διαχειριζόμενο κώδικα. Ωστόσο, η ασφάλεια δεν είναι εγγυημένη επειδή δεν τηρούνται αυστηροί κανόνες πρόσβασης αντικειμένου. Για παράδειγμα, οι δυνατότητες λειτουργίας δείκτη δεν παρέχονται στο Java Runtime Environment (JRE).


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

Ο ορισμός αυτός γράφτηκε στο πλαίσιο του C #
Τι δεν είναι ασφαλές; - ορισμός από την τεχνολογία