C++ 的創造者批評強加安全編程語言

C++ 語言的創建者 Bjarne Stroustrup 發表了對 NSA 報告結論的反對意見,該報告建議組織放棄使用 C 和 C++ 等程式語言,因為這些語言將記憶體管理留給了開發人員,而傾向於使用C#、Go、 Java、Ruby、Rust 和Swift 等語言提供自動記憶體管理或執行編譯時記憶體安全檢查。

Stroustrup 表示,在他看來重要的應用程式中,NSA 報告中提到的安全語言其實並不比 C++好。 特別是,近年來制定的使用 C++ 的基本建議(C++ 核心指南)涵蓋了安全程式設計方法,並規定了保證類型和資源安全工作的工具的使用。 這為不需要如此嚴格的安全保證的開發人員提供了繼續使用舊開發方法的選擇。

Stroustrup 認為,遵循 C++ 核心準則的良好靜態分析器可以為 C++ 程式碼的安全性提供必要的保證,而成本比遷移到新的安全程式語言要低得多。 例如,大多數核心指南已在 Microsoft Visual Studio 中包含的靜態分析器和記憶體安全設定檔中實作。 Clang tidy 靜態分析器中也考慮了一些建議。

美國國家安全局的報告也被批評只關注記憶體問題,而忽略了許多其他影響安全性和可靠性的程式語言問題。 Stroustrup 將安全性視為一個更廣泛的概念,其不同方面可以透過編碼風格、函式庫和靜態分析器的組合來實現。 為了控制確保使用類型和資源的安全性的規則的包含,建議在程式碼和編譯器選項中使用註解。

在效能比安全性更重要的應用中,這種方法允許選擇性地應用僅在需要時保證安全性的功能。 安全工具也可以逐步應用,例如從範圍檢查和初始化規則開始,然後逐漸使程式碼適應更嚴格的要求。

來源: opennet.ru

添加評論