בית התפתחות מה לא בטוח? - הגדרה מטכנולוגיה

מה לא בטוח? - הגדרה מטכנולוגיה

תוכן עניינים:

Anonim

הגדרה - מה המשמעות של לא בטוח?

Unsafe היא מילת מפתח של שפת תכנות (C #) המשמשת לציון קטע קוד שאינו מנוהל על ידי Runtime Common Language Runtime (CLR) של .NET Framework, או קוד לא מנוהל. לא בטוחים משתמשים בהצהרת סוג או חבר או לציון קוד חסום. כאשר משתמשים בהן כדי לציין שיטה, ההקשר של השיטה כולה אינו בטוח.


קוד לא בטוח מספק יכולת פעולה הדדית טובה עם ממשקי תכנות יישומים לא מנוהלים (API) או שיחות מערכת ומשמש כממשק תואם לספריות קישור דינמי של צד שלישי (DLL), הדורשות עצות להעברת פרמטרים. ניתן להשתמש בקוד לא בטוח במהלך ניפוי באגים כאשר תוכן התהליך דורש בדיקה או ניתוח.

Techopedia מסביר את Unsafe

נתונים לא בטוחים מתייחסים לנתוני זיכרון שהוקצו שאינם נשלטים על ידי ה- CLR, כמו הידיות של Windows או מצביעים שהוקצו בשיטה חדשה.


קוד לא בטוח מתייחס להצהרה או לשיטה הגישה לזיכרון שאינו מנוהל, כולל:

  • שיחות לממשקי API של Windows
  • קריאות לרכיבי ממשק שיטת COM (Component Object Model) הכוללים מבנים עם מצביעים או קוד קריטי לביצוע.

קוד לא בטוח משמש בעיקר כאשר פעולות כוללות עצות, ובאופן כללי, כאשר קוד מבוצע מחוץ להקשר המנוהל. אוספי קוד לא בטוחים מצריכים מפרט של אפשרות "/ לא בטוח" עם פקודת הקומפילציה.


בסביבות מהימנות לחלוטין, CLR נדרש לביצוע קוד לא בטוח. עם זאת, CLR לא מאמת קוד לא בטוח. CLR תומך בקוד לא בטוח כדי לספק גישה ישירה לקוד זיכרון לא מנוהל, שלעתים עדיף מסיבות ביצועים.


מכיוון ש- CLR שומר על בטיחות וביטחון, C # אינו תומך בחשבון מצביע בקוד מנוהל, בשונה מ- C / C ++. מילת המפתח הלא בטוחה מאפשרת שימוש במצביע בקוד לא מנוהל. עם זאת, הבטיחות אינה מובטחת מכיוון שלא מתקיימים כללי גישה נוקשים לגישה לאובייקטים. לדוגמה, יכולות הפעלת המצביע אינן מסופקות בסביבת Runtime Java (JRE).


קוד לא בטוח יכול ליצור בעיות עם יציבות וביטחון, בגלל התחביר המורכב והפוטנציאל שלו לשגיאות הקשורות בזיכרון, כמו הצפת ערימה, גישה וזיכרון מערכת להחלפה. טיפול נוסף במפתחים הוא בעל חשיבות עליונה למניעת שגיאות או סיכוני אבטחה פוטנציאליים.

הגדרה זו נכתבה בהקשר של C #
מה לא בטוח? - הגדרה מטכנולוגיה