انتقد مبتكر C ++ فرض لغات البرمجة الآمنة

نشر بيارن ستروستروب، مبتكر لغة C++، اعتراضاته على استنتاجات تقرير وكالة الأمن القومي، الذي أوصى المنظمات بالابتعاد عن لغات البرمجة مثل C وC++، التي تترك إدارة الذاكرة للمطور، لصالح اللغات. ​​مثل C#، وGo، وJava، وRuby، وRust، وSwift، والتي توفر إدارة تلقائية للذاكرة أو تقوم بإجراء فحوصات سلامة الذاكرة في وقت الترجمة.

وبحسب ستروستروب، فإن اللغات الآمنة المذكورة في تقرير وكالة الأمن القومي لا تتفوق في الواقع على لغة C++ في التطبيقات المهمة من وجهة نظره. على وجه الخصوص، تغطي التوصيات الأساسية لاستخدام C++ (المبادئ التوجيهية الأساسية لـ C++)، والتي تم تطويرها في السنوات الأخيرة، طرق البرمجة الآمنة وتصف استخدام الأدوات التي تضمن العمل الآمن مع الأنواع والموارد. ومع ذلك، فإن المطورين الذين لا يحتاجون إلى مثل هذه الضمانات الأمنية الصارمة يُترك لديهم خيار الاستمرار في استخدام أساليب التطوير القديمة.

يعتقد ستروستروب أن المحلل الثابت الجيد الذي يتبع الإرشادات الأساسية لـ C++ يمكنه توفير الضمانات اللازمة لسلامة كود C++ بتكلفة أقل بكثير من الانتقال إلى لغات برمجة آمنة جديدة. على سبيل المثال، تم بالفعل تنفيذ معظم الإرشادات الأساسية في المحلل الثابت وملف تعريف أمان الذاكرة المضمن في Microsoft Visual Studio. يتم أيضًا أخذ بعض التوصيات في الاعتبار في محلل Clang المرتب.

كما تم انتقاد تقرير وكالة الأمن القومي أيضًا لتركيزه فقط على مشكلات الذاكرة، مع تجاهل العديد من مشكلات لغة البرمجة الأخرى التي تؤثر على الأمان والموثوقية. ينظر ستروستروب إلى الأمن باعتباره مفهومًا أوسع، يمكن تحقيق جوانبه المختلفة من خلال مزيج من أسلوب البرمجة والمكتبات والمحللات الثابتة. للتحكم في إدراج القواعد التي تضمن سلامة العمل مع الأنواع والموارد، يقترح استخدام التعليقات التوضيحية في خيارات التعليمات البرمجية والمترجم.

في التطبيقات التي يكون فيها الأداء أكثر أهمية من الأمان، يسمح هذا الأسلوب بالتطبيق الانتقائي للميزات التي تضمن الأمان فقط عند الحاجة إليه. يمكن أيضًا تطبيق أدوات الأمان بطريقة مجزأة، مثل البدء بقواعد التحقق من النطاق والتهيئة، ثم تكييف التعليمات البرمجية تدريجيًا مع المتطلبات الأكثر صرامة.

المصدر: opennet.ru

إضافة تعليق