جدول المحتويات:
تعريف - ماذا يعني غير آمنة؟
Unsafe هي كلمة أساسية في لغة البرمجة C (C #) تُستخدم للدلالة على قسم من التعليمات البرمجية لا تتم إدارته بواسطة وقت تشغيل اللغة العامة (CLR) الخاص بـ .NET Framework أو التعليمات البرمجية غير المُدارة. يستخدم غير آمن في إعلان نوع أو عضو أو لتحديد رمز الحظر. عند استخدامها لتحديد طريقة ما ، يكون سياق الأسلوب بأكمله غير آمن.
يوفر الرمز غير الآمن إمكانية التشغيل المتداخل الجيد مع واجهات برمجة التطبيقات غير المُدارة (API) أو مكالمات النظام ويعمل كواجهة متوافقة لمكتبات الارتباط الديناميكي الخارجية (DLL) ، والتي تتطلب مؤشرات لتمرير المعلمة. يمكن أيضًا استخدام رمز غير آمن أثناء تصحيح الأخطاء ، عندما يتطلب محتوى العملية التفتيش أو التحليل.
يشرح Techopedia غير آمنة
تشير البيانات غير الآمنة إلى بيانات الذاكرة المخصصة التي لا يتحكم فيها CLR ، مثل مقابض Windows أو المؤشرات المخصصة عبر طريقة جديدة.
يشير الرمز غير الآمن إلى عبارة أو طريقة تصل إلى الذاكرة غير المُدارة ، بما في ذلك:
- يدعو إلى واجهات برمجة التطبيقات ويندوز
- مكالمات إلى مكونات واجهة أسلوب طراز كائن المكون (COM) التي تتضمن بنيات مع مؤشرات أو رمز الأداء الهامة.
يتم استخدام التعليمات البرمجية غير الآمنة بشكل أساسي عندما تتضمن العمليات مؤشرات ، وبشكل عام ، عندما يتم تنفيذ التعليمات البرمجية خارج السياق المدار. يتطلب ترجمة التعليمات البرمجية غير الآمنة تحديد خيار "/ غير آمن" باستخدام أمر التحويل البرمجي.
في البيئات الموثوقة بالكامل ، مطلوب CLR لتنفيذ التعليمات البرمجية غير الآمنة. ومع ذلك ، لا يتحقق CLR من رمز غير آمن. يدعم CLR التعليمات البرمجية غير الآمنة لتوفير وصول مباشر إلى رمز الذاكرة غير المُدار ، والذي يُفضل أحيانًا لأسباب تتعلق بالأداء.
نظرًا لأن CLR تحافظ على أمان النوع والأمان ، فإن C # لا يدعم حساب المؤشر في التعليمات البرمجية المدارة ، على عكس C / C ++. تتيح الكلمة الأساسية غير الآمنة استخدام المؤشر في التعليمات البرمجية غير المُدارة. ومع ذلك ، لا يتم ضمان السلامة نظرًا لعدم اتباع قواعد صارمة للوصول إلى الكائنات. على سبيل المثال ، لا تتوفر إمكانيات تشغيل المؤشر في Java Runtime Environment (JRE).
يمكن أن تسبب الشفرة غير الآمنة مشكلات تتعلق بالاستقرار والأمان ، نظرًا لتركيبها المعقد المتأصل وإمكانية حدوث أخطاء متعلقة بالذاكرة ، مثل تجاوز سعة الرصة والوصول إلى ذاكرة نظام الكتابة فوقها. رعاية المطورين الإضافية أمر بالغ الأهمية لتجنب الأخطاء المحتملة أو المخاطر الأمنية.