C++ प्रोग्रामिंग भाषा और सुरक्षा: यह आगे की बात है

  • Sep 04, 2023

'मेमोरी सेफ' भाषाओं की ओर बदलाव आया है। तो, क्या C++ के अपडेट इसे डेवलपर्स की नजरों में चढ़ने में मदद कर सकते हैं?

Gettyimages-सहकर्मी-चर्चा-कंप्यूटर-प्रोग्राम-इन-ऑफिस.jpg
छवि: गेटी

बेहद लोकप्रिय C++ प्रोग्रामिंग भाषा के विकास पर काम कर रहे एक समूह ने भाषा को "मेमोरी सुरक्षित" बनाने के लिए एक मार्ग की रूपरेखा तैयार की है - बिल्कुल अपने युवा प्रतिद्वंद्वी, रस्ट की तरह।

जंग को गले लगा लिया गया है माइक्रोसॉफ्ट, एडब्ल्यूएस, मेटा, गूगल का एंड्रॉइड ओपन सोर्स प्रोजेक्ट, C++-प्रभुत्व क्रोमियम परियोजना (प्रकार), लिनक्स कर्नेल, और भी बहुत कुछ, जिससे मदद मिली है स्मृति सुरक्षा दोषों को कम करें. यहां तक ​​कि राष्ट्रीय सुरक्षा एजेंसी (एनएसए) ने भी डेवलपर्स की सिफारिश की है C++ से दूर एक रणनीतिक बदलाव करें सी#, जावा, रूबी, रस्ट और स्विफ्ट के पक्ष में।

C++ सुरक्षा के बारे में व्यापक चेतावनियों ने "C++ की सुरक्षा" के लिए आगे का रास्ता तैयार करने के लिए कदम उठाए हैं, जिसका विवरण एक लेख में दिया गया है। कागज़ C++ मानक समिति कार्य समूह 21 (WG21) के लिए C++ के निर्माता बर्जने स्ट्रॉस्ट्रुप सहित एक समूह द्वारा, जो इस महीने जारी किया गया था।

ZDNET की सिफारिश की

सर्वोत्तम प्रोग्रामिंग भाषाएँ

यहां सबसे लोकप्रिय प्रोग्रामिंग भाषाओं की सूची दी गई है और उन्हें कहां से सीखा जाए

अभी पढ़ें

पेपर तकनीकी परिवर्तनों के लिए तर्क देता है और विचार करता है कि C++ को सुरक्षा के साथ अपनी "छवि समस्या" का समाधान कैसे करना चाहिए।

भी: प्रोग्रामिंग भाषाएँ: यह पुरानी पसंदीदा भाषा फिर से क्यों बढ़ रही है?

Apple ऑपरेटिंग सिस्टम में C/C++ कोड के साथ सुरक्षा समस्याओं को उजागर करने वाली नवीनतम तकनीकी दिग्गज कंपनी है। कंपनी XNU, iOS, macOS, watchOS और अन्य के लिए कर्नेल में मेमोरी सुरक्षा को संबोधित कर रही है।

"क्योंकि आज लगभग सभी लोकप्रिय उपयोगकर्ता डिवाइस C और C++ जैसी प्रोग्रामिंग भाषाओं में लिखे गए कोड पर निर्भर हैं जिन्हें "मेमोरी-असुरक्षित" माना जाता है, जिसका अर्थ है कि वे मजबूत गारंटी प्रदान न करें जो सॉफ़्टवेयर बग के कुछ वर्गों को रोकती है, मेमोरी सुरक्षा में सुधार करना इंजीनियरिंग टीमों के लिए एक महत्वपूर्ण उद्देश्य है उद्योग," Apple ने अक्टूबर में समझाया.

C++ का उदय 1985 में हुआ और सबसे लोकप्रिय भाषाओं में से एक बनी हुई है, आंशिक रूप से इसके प्रदर्शन के कारण। इसे अंतर्राष्ट्रीय मानकीकरण संगठन (आईएसओ) द्वारा मानकीकृत किया गया है, जिसका नवीनतम संस्करण C++20 है, जिसे दिसंबर 2020 में अंतिम रूप दिया गया है। अगले मानक को C++2023 कहा जाने की संभावना है। दूसरी ओर, रस्ट 2015 में संस्करण 1.0 पर पहुंच गया, और यह मानकीकृत नहीं है बल्कि इसके योगदानकर्ताओं के समुदाय द्वारा संचालित है।

स्ट्रॉस्ट्रुप और उनके साथियों का पेपर एंबेडेड, मेडिकल, एयरोस्पेस और एवियोनिक्स जैसे सुरक्षा महत्वपूर्ण डोमेन में C++ के उपयोग के बारे में बात करता है। वे स्वीकार करते हैं कि स्वायत्त वाहनों, कनेक्टेड महत्वपूर्ण बुनियादी ढांचे, मैसेजिंग ऐप्स आदि के बढ़ने के कारण "सुरक्षा के संबंध में अधिक औपचारिक बाधाओं की मांग बढ़ गई है"।

लेखक लिखते हैं, "एम्बेडेड, ऑटोमोटिव, एवियोनिक्स, मेडिकल और परमाणु जैसे अनुप्रयोग स्पष्ट अनुप्रयोग थे जिन्हें C++ में प्रोग्राम किए जाने पर सुरक्षा की आवश्यकता होती है।"

"तो रास्ते में, इनमें से अधिकांश के लिए सुरक्षा दिशानिर्देश विकसित किए गए थे। इंटरनेट विस्फोट ने ऐसे ब्राउज़रों को जन्म दिया जो तेजी से हैकिंग का निशाना बन रहे थे क्योंकि ब्राउज़रों के माध्यम से अधिक वाणिज्यिक लेनदेन होते थे। रस्ट, मूल रूप से मोज़िला से, C++ के शीर्ष पर निर्मित एक सुरक्षित ब्राउज़र भाषा का पोस्टर चाइल्ड बन गया। हमने तेजी से देखा है कि RUST के सुरक्षा दावों का ब्राउज़रों के अलावा अन्य अनुप्रयोगों में भी परीक्षण किया गया है, जैसे ड्राइवर और लिनक्स कर्नेल।"

पेपर नोट करता है एनएसए की हालिया सिफ़ारिश संगठनों के लिए "जब संभव हो तो सी/सी++ जैसी कम या कोई अंतर्निहित मेमोरी सुरक्षा प्रदान करने वाली प्रोग्रामिंग भाषाओं से मेमोरी सुरक्षित भाषा में रणनीतिक बदलाव करने पर विचार करें।" 

"अभी हाल ही में, सुरक्षा अनुप्रयोगों की सलाह देने वाले अमेरिकी सरकारी प्रकाशनों से जुड़े दो विकास हुए हैं ऐसा लगता है कि एनआईएसटी और एनएसए से सी/सी++ का उपयोग न करने से सुरक्षा के बारे में व्यापक चर्चा छिड़ गई है सी++. ऐसा प्रतीत होता है कि एनआईएसटी और एनएसए दोनों एक वैकल्पिक भाषा का उपयोग करने का सुझाव दे रहे हैं," अखबार कहता है। जोखिम यह है कि "गैर-सरकारी संस्थाएँ सरकारी निर्देशों की अनदेखी कर सकती हैं और/या, सरकारी निर्देश C++ को कुछ बाज़ार से बाहर कर देते हैं, और अप्रत्यक्ष रूप से C++ से दूर धकेल देते हैं"।

पेपर नोट करता है कि जब सुरक्षा की बात आती है तो C++ में एक छवि समस्या होती है, लेकिन इसे अन्य भाषाओं में डाल दिया जाता है स्वयं को सुरक्षित के रूप में विपणन करना, जिसके बारे में लेखकों का तर्क है कि C++ ने हाल ही में सुरक्षा के क्षेत्र में जो प्रगति की है, उसे नज़रअंदाज कर दिया जाता है साल।

"C++, कम से कम सार्वजनिक छवि में, सुरक्षा के संबंध में अन्य भाषाओं की तुलना में कम प्रतिस्पर्धी प्रतीत होता है। यह विशेष रूप से सच प्रतीत होता है जब उन भाषाओं की तुलना में जो स्वयं को C++ की तुलना में अधिक सक्रिय रूप से/निर्लज्जतापूर्वक/सक्षम रूप से विज्ञापित करते हैं। कुछ मायनों में, वे विशेष रूप से सुरक्षा की एक कार्यकारी-सूट परिभाषा को संतुष्ट करते प्रतीत होते हैं, जो अधिकारियों के लिए C++ से स्विच के लिए पूछना आकर्षक बनाता है,'' पेपर कहता है।

भी: लो-कोड अभी अधिक काम वाले आईटी विभागों का इलाज नहीं है

"फिर भी जो बात शोर में खो गई है वह यह है कि C++ ने हाल के वर्षों में डैंग्लिंग, संसाधन और मेमोरी सुरक्षा के मामले में काफी प्रगति की है... C++ को एक विशिष्टता, उपयोगकर्ताओं और कार्यान्वयनकर्ताओं के सक्रिय समुदाय से लाभ होता है। अन्य "सुरक्षित" भाषाओं में भी कोई विशिष्टता नहीं हो सकती है, कम से कम अभी तक तो नहीं। सुरक्षा के लिए इन महत्वपूर्ण संपत्तियों को नजरअंदाज कर दिया जाता है क्योंकि हम विज्ञापन के बारे में कम सोचते हैं। C++ का भी समय-परीक्षण किया गया है और लगभग आधी सदी से भी अधिक समय से कोड की लाखों पंक्तियों में युद्ध परीक्षण किया गया है।"

यह तर्क देता है कि अन्य भाषाएँ नहीं हैं।

"ऐसा समय आ सकता है जब C++ अपनी मशाल किसी अन्य बड़ी भाषा को सौंप देगा, लेकिन मौजूदा दावेदारों में से कोई भी ऐसा नहीं है। हमें मौजूदा कोड की लाखों पंक्तियों को कभी नहीं छोड़ना चाहिए, जिनमें से कुछ सुरक्षा की दुहाई नहीं देतीं। हमें सी++ में सुरक्षा का समर्थन करने की तात्कालिकता को पहचानना चाहिए जो हमारे समय के मुद्दों में से एक है।" 

पेपर में कहा गया है कि C++ मानक समिति WG21 इस विचार का समर्थन करती है कि सुरक्षा के लिए बदलावों को न केवल टूलींग में अपनाने की जरूरत है - जहां यह है अतीत में और अधिक काम किया है - लेकिन इसके संबंध में C++ की छवि को संबोधित करने में सहायता के लिए भाषा/कंपाइलर और लाइब्रेरी में "दृश्यमान" होना भी आवश्यक है। सुरक्षा।

डेवलपर

यह प्रोग्रामिंग का अंत है जैसा कि हम जानते हैं - फिर से
डेवलपर्स अपनी नौकरियों में सुरक्षित महसूस करते हैं, लेकिन वे अभी भी नौकरी छोड़ने के बारे में सोच रहे हैं
वेब के भविष्य को एक अलग प्रकार के सॉफ़्टवेयर डेवलपर की आवश्यकता होगी
उपभोक्ताओं और डेवलपर्स के लिए सर्वोत्तम लिनक्स लैपटॉप
  • यह प्रोग्रामिंग का अंत है जैसा कि हम जानते हैं - फिर से
  • डेवलपर्स अपनी नौकरियों में सुरक्षित महसूस करते हैं, लेकिन वे अभी भी नौकरी छोड़ने के बारे में सोच रहे हैं
  • वेब के भविष्य को एक अलग प्रकार के सॉफ़्टवेयर डेवलपर की आवश्यकता होगी
  • उपभोक्ताओं और डेवलपर्स के लिए सर्वोत्तम लिनक्स लैपटॉप