Krijuesi i C++ kritikoi imponimin e gjuhëve të sigurta të programimit

Bjarne Stroustrup, krijuesi i gjuhës C++, ka publikuar kundërshtime ndaj përfundimeve të raportit të NSA, i cili rekomandonte që organizatat të largoheshin nga gjuhët e programimit si C dhe C++, të cilat ia lënë menaxhimin e kujtesës zhvilluesit, në favor të gjuhëve. të tilla si C#, Go, Java, Ruby, Rust dhe Swift, të cilat ofrojnë menaxhim automatik të kujtesës ose kryejnë kontrolle të sigurisë së kujtesës në kohë përpilimi.

Sipas Stroustrup, gjuhët e sigurta të përmendura në raportin e NSA në fakt nuk janë superiore ndaj C++ në aplikacionet që janë të rëndësishme nga këndvështrimi i tij. Në veçanti, rekomandimet bazë për përdorimin e C++ (C++ Core Guidelines), të zhvilluara vitet e fundit, mbulojnë metoda të sigurta programimi dhe përshkruajnë përdorimin e mjeteve që garantojnë punë të sigurt me llojet dhe burimet. Kjo i lë mundësinë zhvilluesve që nuk kërkojnë garanci të tilla të rrepta sigurie që të vazhdojnë të përdorin metoda të vjetra zhvillimi.

Stroustrup beson se një analizues i mirë statik që ndjek udhëzimet thelbësore të C++ mund të sigurojë garancitë e nevojshme për sigurinë e kodit C++ me një kosto dukshëm më të ulët sesa migrimi në gjuhë të reja programimi të sigurta. Për shembull, shumica e udhëzimeve bazë janë zbatuar tashmë në analizuesin statik dhe në profilin e sigurisë së kujtesës të përfshirë në Microsoft Visual Studio. Disa rekomandime merren gjithashtu parasysh në analizuesin statik të rregullt Clang.

Raporti i NSA u kritikua gjithashtu për fokusimin vetëm në problemet e kujtesës, duke lënë jashtë shumë probleme të tjera të gjuhës programuese që ndikojnë në sigurinë dhe besueshmërinë. Stroustrup e sheh sigurinë si një koncept më të gjerë, aspektet e ndryshme të të cilit mund të arrihen nga një kombinim i stilit të kodimit, bibliotekave dhe analizuesve statikë. Për të kontrolluar përfshirjen e rregullave që sigurojnë sigurinë e punës me llojet dhe burimet, propozohet përdorimi i shënimeve në kodin dhe opsionet e përpiluesit.

Në aplikacionet ku performanca është më e rëndësishme se siguria, kjo qasje lejon aplikimin selektiv të veçorive që garantojnë siguri vetëm aty ku është e nevojshme. Mjetet e sigurisë mund të aplikohen gjithashtu pjesë-pjesë, si fillimi me kontrollin e diapazonit dhe rregullat e inicializimit, dhe më pas duke përshtatur gradualisht kodin me kërkesa më të rrepta.

Burimi: opennet.ru

Shto një koment