2025 生死线临近:C++ 不安全就要被淘汰

随波逐码9个月前北京
随波逐码
以键盘为笔,代码写热爱;以 bug 为阶,打磨成长路。记录开发点滴、拆解技术难题,做有温度的技术分享,和大家在编程路上共赴山海~
32篇原创内容
摘要 新开发的软件若使用 C 或 C++ 等内存不安全语言,将对国家安全、经济安全和医疗安全构成重大隐患;正在使用的 C/C++ 编写软件,需在 2025 年底前发布内存安全路线图,否则也将被认定为国家安全隐患。



美国网络安全和基础设施局(CISA)与联邦调查局(FBI)于 2024 年 10 月联合发布《产品安全不良实践》(《Product Security Bad Practices》)报告。报告指出,新开发的软件若使用 C 或 C++ 等内存不安全语言,将对国家安全、经济安全和医疗安全构成重大隐患;正在使用的 C/C++ 编写软件,需在 2025 年底前发布内存安全路线图,否则也将被认定为国家安全隐患。

内存漏洞一直是软件行业的顽疾,C++ 在这一问题上的处境尤为被动。一方面,Rust 等新生代内存安全语言正在加速抢夺 C++ 的市场份额;另一方面,C++ 需应对全球监管对内存安全的严格要求。为此,C++ 创始人比雅尼・斯特劳斯特鲁普(Bjarne Stroustrup)提出了 Profiles 框架,核心思路是通过定制化规则限制高危语法,同时充分兼顾既有 C++ 代码的兼容性,力求实现 “安全提升” 与 “资产保留” 的兼得。

遗憾的是,国际标准化组织(ISO)下属的 C++ 工作组 WG21 并未采纳 Profiles 框架方案。WG21 认为该框架缺乏可落地的实现方案:其核心是通过定制化规则限制高危语法,但比雅尼仅提出了宏观理念,未给出编译器层面的具体实现路径 —— 例如如何让编译器精准识别不同模块的 Profile 标记、如何处理规则冲突、如何平衡规则执行与编译效率等关键技术问题,均未明确答案。

为了缓解内存漏洞问题、延长 C++ 的应用生命周期,C++ 社区衍生出了 Cppcheck、Clang-tidy 等静态分析工具。这些工具(无论开源与否)呈现 “百花齐放” 的态势,各自拥有不同的设计思路与技术路线。但这种现状实则有些 “饮鸩止渴”:工具碎片化导致代码、工具库乃至开发经验难以共享,反而进一步增加了 C++ 通过标准化推进内存管理优化的难度。

只有形成统一的安全规范与协作机制,C++ 才能在保留既有资产的同时迎接新的安全要求。否则,它将不再是关键基础设施的支柱语言,而只是被时代逐渐取代的遗留技术。


阅读 23
免责说明:对于用户内容中涉及的观点、建议、数据等,仅代表发布者个人立场,不视为平台官方观点,平台不对其真实性及可行性作出承诺。
if($('#ad_list_1').length>0){ gubel.api.gdtor(gdtdata=>{ setTimeout(()=>{ gdtdata.push({ app_id: '1218616126', placement_id: '5352294086181369', type: 'native', muid_type: '1', count: 10, onComplete: function(res) { if (res && res.constructor === Array) { gdtdata.NATIVE.renderAd(res[0], 'ad_list_1'); gdtdata.NATIVE.renderAd(res[1], 'ad_list_2'); gdtdata.NATIVE.renderAd(res[2], 'ad_list_3'); gdtdata.NATIVE.renderAd(res[3], 'ad_list_4'); gdtdata.NATIVE.renderAd(res[4], 'ad_list_5'); gdtdata.NATIVE.renderAd(res[5], 'ad_list_6'); gdtdata.NATIVE.renderAd(res[6], 'ad_list_7'); gdtdata.NATIVE.renderAd(res[7], 'ad_list_8'); gdtdata.NATIVE.renderAd(res[8], 'ad_list_9'); gdtdata.NATIVE.renderAd(res[9], 'ad_banner_1'); } else { } } }); }, 3000); }); }else{ gubel.api.gdtor(gdtdata=>{ setTimeout(()=>{ gdtdata.push({ app_id: '1218616126', placement_id: '1302499096588067', type: 'native', display_type: 'interstitial', count: 1, onComplete: function(res) { if (res && res.ret === 0) { gdtdata.NATIVE.renderAd(res.data[0]); } else { } } }); }, 3000); }); }
© 2025-2026 ® All Rights Reserved.
{{item}}
setTimeout(()=>{ gubel.api.embedor(); }, 2000);
客服