![]()
在連續兩年被內存安全問題所困擾后,C++社區發布了一項提案,旨在幫助開發者編寫更少漏洞的代碼。這項名為Safe C++ Extensions的提案,意在解決C++這一易受攻擊編程語言的致命弱點——確保代碼不包含內存安全漏洞的挑戰。
開發者Sean Baxter(Circle編譯器的創建者)和Christian Mazakas(來自C++聯盟)承認,盡管Rust是唯一流行的沒有垃圾回收且提供嚴格內存安全的系統級編程語言,但將C++代碼遷移到Rust存在問題。他們在提案中解釋道,"Rust缺乏函數重載、模板、繼承和異常,而C++缺乏特征、重新定位和借用檢查。這些差異在兩種語言的互操作中造成了阻隔和不匹配。大多數代碼生成器的互語言綁定無法用一種語言的特性來表示另一種語言的特性。"
盡管DARPA正在努力開發更好的自動化C++到Rust的轉換工具,Baxter和Mazakas認為,告訴資深的C++開發者學習Rust并不是一個解決方案。Baxter解釋說,Safe C++項目增加了確保內存安全的新技術支持,不僅僅是最佳實踐的重復。"Safe C++防止用戶編寫不健全的代碼,這包括更加智能的編譯時,如借用檢查以防止使用后釋放的錯誤和初始化分析以確保類型安全。"
Baxter表示,用不同的編程語言重寫一個項目成本很高,因此這里的目標是通過以較低的成本提供與Rust相同的健全性保證,使內存安全更容易獲得。他解釋道,"有了Safe C++,現有代碼像往常一樣繼續工作,開發者可以更有控制性地逐步選擇安全性。"
Baxter說,下一步涉及行業更廣泛的參與,以幫助實現Safe C++項目。"基礎已經打下,我們有出色的借用檢查和初始化分析,這些是健全性保證的基礎。"他說,"下一步是全面審視C++的所有特性,并為它們指定內存安全版本。這是一項巨大的努力,但鑒于減少C++安全漏洞的重要性,這是值得付出的努力。"
Safe C++ Extensions提案的推出是C++社區對當前編程語言安全形勢的一次重要回應。隨著軟件系統變得越來越復雜,內存安全問題已經成為軟件開發中不可忽視的一環。盡管Rust等新興語言提供了內存安全的特性,但對于大量現存的C++代碼庫來說,遷移到新語言并非易事。Safe C++提案旨在為C++開發者提供一個在原有語言基礎上增強內存安全特性的方案,這顯然是對C++生態系統的一次重要補充。
然而,這一提案的實施和推廣仍面臨挑戰。需要行業更廣泛的參與和合作,以確保Safe C++項目能夠覆蓋C++的所有特性,并為它們提供內存安全版本。此外,教育和培訓開發者使用這些新特性,以及在實際項目中應用Safe C++,也是推廣這一提案的關鍵。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.