写点什么

被批不够安全, 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:404017

评论 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 · 北京
回复
没有更多了
发现更多内容

由两个问题引发的对GaussDB(DWS)负载均衡的思考

华为云开发者联盟

数据库 数据 负载

架构设计大作业1

仲夏

数字资产钱包系统开发及介绍

京东将上线社区团购“京喜拼拼”:社区团购是否是一次泡沫大战

石头IT视角

咨询师的诱惑

escray

程序员 面试 面经

GitHub上1.3W Stars国内第一的项目实战PDF

Java架构之路

Java 程序员 架构 面试 编程语言

2020H1中国AI云服务市场规模增长远超预期;C++20 标准正式发布

京东科技开发者

云计算 AI IoT

年前成功拿下35K+16薪美团Java架构师Offer!考点、面试题分享送给明年金三银四的你

Java架构追梦

Java 架构 面试 美团 offer

测开之函数进阶· 第5篇《偏函数》

清菡软件测试

测试开发

京东城市时空数据引擎JUST亮相中国数据库技术大会(附PPT链接)

京东科技开发者

数据库 nosql

【华为云专家原创】 服务注册与发现如何满足服务治理?

华为云开发者联盟

分布式 服务 注册

手把手带你入门加密算法的Python实现

华为云开发者联盟

Python 算法 加密

网易有道 iOS二面经验分享

iOSer

ios 面试 网易

花火交易所APP开发|花火交易所软件系统开发

系统开发

Bitmap 续篇-基于 Bitmap 瞅瞅不一样的 Percentile

GrowingIO技术专栏

BitMap

太平金科助力“开局之战”顺利启动,博睿数据“A+N”一体化解决方案全力护航

博睿数据

APM npm AIOPS

七大步骤,详解预置算法构建模型的全过程

华为云开发者联盟

架构 算法 数据

从阿里P5到P8=入门到内核?看看这份对标80W+年薪的Java进阶路线图

Java架构之路

Java 程序员 架构 面试 编程语言

盘点 2020 | 数据里有你、我、他,关键还是自己

李孟聊AI

大数据 数据中台 感悟 盘点2020

用138个案例讲明白了Spring全家桶+Docker+MQ

996小迁

Docker 架构 面试 RabbitMQ Spring全家桶

小黄人提前回归?实力与萌力双出动

DT极客

大数据ETL批量调度,这几款工具都需要去掌握了解

敏捷调度TASKCTL

大数据 kettle 运维自动化 海豚调度 ETL算法

接口测试-使用mock生产随机数据

测试人生路

接口测试

看完这篇,保证让你真正明白:分布式系统的CAP理论、CAP如何三选二

四猿外

架构 分布式系统 CAP CAP原理 CAP理论

【得物技术】交易轨迹系统

得物技术

数据 交易 得物 得物技术 自定义

完美!这份世界顶级架构师编写的550页Spring5高级编程

Java架构之路

Java 程序员 架构 面试 编程语言

专业基础篇

紫枫

博睿数据支持腾讯云函数监控,Serverless时代已来临

博睿数据

Serverless APM 监控

LeetCode题解:剑指 Offer 40. 最小的k个数,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

互联网寒冬下,程序员如何化解危机?答案全在这份阿里Java知识地图里

比伯

Java 编程 程序员 面试 计算机

ONES 年终报告 | 功能升级123次,服务超100万客户

万事ONES

研发管理工具 年终报告

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