写点什么

被批不够安全, C++ 创建者压力下提出解决方案

  • 2023-02-13
    北京
  • 本文字数:970 字

    阅读完需:约 3 分钟

被批不够安全,  C++ 创建者压力下提出解决方案

近期,这条由 C++ 创建者 Bjarne Stroustrup 与其它开发者联合发布声明表示,需要改变编程语言自身来解决解决安全问题。

 

“作为⼀种⾼性能的通⽤语⾔是 C++成功的原因。可能有⼀天 C++ 会将其⽕炬传递给另⼀种更强⼤的语⾔,但⽬前还不是这样。 我们永远不应该放弃数百万⾏现有代码,其中⼀些代码并不需要安全。我们应该认识到⽀持 C++ 安全的紧迫性是我们这个时代的问题之⼀。”Stroustrup 等人在文档里提到。他们总结了 C++ 的安全原则:

 

  • 不要从根本上破坏向后兼容性——与更现代、更流行的语言相比,兼容性是 C++的一个关键特性和优势。

  • 不要以无法表达抽象为代价来提供安全性,抽象是 C++力量的支柱。

  • 不要留下一个“安全”的 C 子集,它会消除 C++的生产力优势。

 

具体来说,他们建议“将几个特性打包到配置文件中(Profiles )”(“配置文件”的解释是:定义要强制执行属性的限制和需求的集合,用来强制执⾏语义⼀致的规则集,⽽不是让单个开发⼈员在对单个语⾔、库设施和编码规则的⼤量限制中进⾏选择)。通过这种方式,安全方面的新更改“应该是可见的,这样安全代码部分就可以被命名(可能使用配置文件),并且可以与普通代码混合使用。

 

他们表示,配置文件专门用于支持嵌入式计算、性能敏感的应用程序,或高度特定的问题领域,如汽车、航空航天、航空电子设备、核或医疗应用程序。

 

“我们认为 Profiles 不会分裂⽣态系统,反⽽增加了多样性。”Stroustrup 等人表示。他们认为安全不应该强加于每个⼈,尤其是那些不需要或不想要的⼈。安全不应该是静态的,⽽是随着了解的增多、外部安全专家更好了解自己的真正需要后不断发展。

 

Stroustrup 这一举动的背后是近期美国国家安全局(NSA)等对 C++ 安全性的点名批评。但当时他对此表示否认:NSA 报告中提到的 “安全” 编程语言(如 C#、Rust、Go、Java、Ruby 或 Swift) 在重要应用程序中实际上并不优于 C++。

 

Stroustrup 当时批评 NSA 的报告只关注内存处理问题,而忽略了许多其他影响项目安全性和可靠性的编程语言问题。他建议使用代码注释和编译器选项来控制规则的包含,以确保类型和资源得到安全处理。考虑到可能对项目造成的破坏,他保证 C++ 社区不会忽视安全问题,但只关注安全问题也不行。


参考链接:

https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2759r0.pdf


推荐阅读:

一个架构师在 2023 年需要掌握哪些“必杀技”?

2023-02-13 15:404182

评论 3 条评论

发布
用户头像
这篇文章很多乱码。
2023-02-14 13:36 · 广东
回复
用户头像
Profile不是配置文件的意思。参考Bluetooth的Profile概念。
2023-02-13 21:53 · 江苏
回复
感谢指出,补充下原文更多对Profile的解释,或许可以帮助大家更好理解:We call a collection of restrictions and requirements that defines a property to be enforced, a “profile.” A typical profile will not be a simple subset of C++ language features. For example, a range-safety profile cannot simply ban the current unchecked subscripting, but needs to provide a run-time checked alternative for many cases.
2023-02-14 09:52 · 北京
回复
没有更多了
发现更多内容

实战经验深度解析 | 博睿数据制造行业精选案例集发布!

博睿数据

Apache SeaTunnel 用户征稿计划启动!分享数据集成实践经验,赢社区荣誉!

Apache SeaTunnel

电商平台如何用"比价API"省下百万运营成本?实战经验揭秘

代码忍者

API接口平台

hahm哈姆 『全球运营总首码』一手高政策对接团队

web3区块链创业团队DappNetWork

HAHM哈姆|HAHM哈姆中国区运营中心首码|HAHM官网

web3区块链创业团队DappNetWork

数字藏品(NFT)项目的线上运营

北京木奇移动技术有限公司

软件外包公司 音乐NFT 体育NFT

深度解析:通过 AIBrix 多节点部署 DeepSeek-R1 671B 模型

火山引擎开发者社区

告别数据难题:淘宝商品评论API带来高效解决方案

tbapi

淘宝API 淘宝商品评论采集 淘宝商品评论API 天猫商品评论API

YashanDB出席胶东CIO十周年峰会 自研数据管理方案驱动智造升级

极客天地

Fabric8 Kubernetes 教程——job、service、ingress、statefulSet、daemonSet

FunTester

订单支付系统难搞?AI 生成 Java 支付状态机代码 (含超时关单 + 回调校验)

飞算JavaAI开发助手

2025长三角国际物联网展

AIOTE智博会

物联网展览会 物联网展会 物联网博览会 物联网展

AI时代的数据底座:火山引擎多模态数据湖的设计与实践

火山引擎开发者社区

Java 开发中的 AI 黑科技:如何用 AI 工具自动生成 Spring Boot 项目脚手架?

飞算JavaAI开发助手

java spingboot #程序员

【开始报名啦】4 月 12 日 TiDB 社区活动在南京!传统技术栈替换和 AI 浪潮正当时,面向未来的国产数据库怎么选择?转发海报参与新款双肩包抽奖!

TiDB 社区干货传送门

告别手写 SQL!AI 工具如何自动生成 Java 数据库 ORM 代码?

飞算JavaAI开发助手

PB 级大数据新势力!Apache SeaTunnel 亮相 Cloudberry 杭州 Meetup(附报名)

Apache SeaTunnel

AI口语练习APP的运营

北京木奇移动技术有限公司

软件外包公司 AI口语练习 AI英语学习

伟大的德比:皇家贝蒂斯与塞维利亚对阵史

新消费日报

夏令时的坑:你的数据库真的能正确处理时间跳变吗?

TDengine

数据库 tdengine 时序数据库

技术管理者,首先应该学会预期管理

老张

团队管理 职场成长

Web3可能是为AI Agents(代理)构建的

PowerVerse

AGI #Web3 AI Agents

国产化不是选择题,而是必答题

TiDB 社区干货传送门

Dify基于TiDB的数据架构重构实践

TiDB 社区干货传送门

做定时任务,一定要用这个神库!!

沉浸式趣谈

JavaScript node.js 定时

无需公网IP聚水潭ERP远程调用仓库监控,贝锐花生壳只需简单3步

贝锐

内网穿透 ERP

普通电脑接入去中心化云算力,玩转3A游戏大作将触手可及

PowerVerse

区块链+ 算力 去中心化云算力

秒级响应!淘宝商品列表 API 一键拉取全品类商品数据

tbapi

淘宝API 关键词搜索淘宝接口 淘宝商品列表接口 淘宝商品列表API

AI口语练习APP的开发

北京木奇移动技术有限公司

软件外包公司 AI口语 AI口语练习APP

MySQL遇到AI:字节跳动开源 MySQL 虚拟索引 VIDEX

字节跳动开源

虚拟索引技术 解耦架构 可扩展接口 生产验证 多形态部署

MaxCompute MaxFrame正式推出AI Function功能,一键调用大模型处理海量数据!

阿里云大数据AI技术

大数据 MaxCompute Qwen DeepSeek AI Function

被批不够安全,  C++ 创建者压力下提出解决方案_语言 & 开发_褚杏娟_InfoQ精选文章