阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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

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

生成式AI:引领未来文案创作新潮流

百度开发者中心

#人工智能 生成式AI 文心一言

极狐GitLab 价值流管理之「总时间图」使用指南

极狐GitLab

DevOps gitlab 软件研发 价值流 时间图表

超越边界:FaaS 的应用实践和未来展望

SOFAStack

Serverless 架构 开发 Faas 函数

鹏云网络入选中国信通院《高质量数字化转型产品及服务全景图(2023)》

鹏云网络

数字化转型 云服务 分布式存储 信通院 分布式块存储

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(中)

极狐GitLab

git gitlab conan Git-Repo 多仓管理

AI+SaaS,会是微盟们的新法器吗?

自象限

生成式AI:改变未来的创新力量

百度开发者中心

#人工智能 ChatGPT 生成式AI 文心一言

Java仿抽奖系统

java易二三

Java 编程 程序员 计算机

适用于各阶段Java程序员的面试备战/避坑指南

程序员小毕

Java 程序员 架构师 java面试 八股文

电商秒杀系统架构设计

艾瑾行

架构训练营

Java函数式编程 :为什么要关心Java8

java易二三

Java 编程 程序员 计算机 科技

HarmonyOS元服务开发实践:桌面卡片字典

HarmonyOS开发者

HarmonyOS

生成式AI革新传媒互联网行业

百度开发者中心

媒体 传媒 #人工智能 ChatGPT 文心一言

K8S集群中使用JDOS KMS服务对敏感数据安全加密 | 京东云技术团队

京东科技开发者

数据安全 数据加密 k8s集群 企业号 8 月 PK 榜 KMS

月活近千万,连续365天无故障:货拉拉怎么做稳定性指标度量?

TakinTalks稳定性社区

快速构建商业模式,企业在云服务器选购上有什么需要注意的?

轶天下事

代码随想录Day50 - 动态规划(十一)

jjn0703

我是如何使用Spring Retry减少1000 行代码

小小怪下士

Java spring 程序员

直播app源码,会话描述协议SDP:高质量平台服务

山东布谷科技

软件开发 数据传输 直播APP源码 sdp 会话描述协议

ARTS 打卡第 2 周: 对比法在编程上的具体应用

前行

DaVinci Resolve Studio 18 for Mac 18.5.1中文激活版

mac大玩家j

达芬奇18破解版 达芬奇18 视频调色软件

龙蜥社区标准化SIG举行线下社区标准研讨会,助力开源社区规范发展

OpenAnolis小助手

操作系统 龙蜥社区 硬件兼容性 质量测试 标准化 SIG

R语言之数据导出

timerring

R 语言

安卓设备文件传输 MacDroid pro for mac激活中文

胖墩儿不胖y

文件传输 Mac 软件 传输文件

采购云服务器安全与成本不可兼得?云耀云服务器L或许可以了解一下

轶天下事

生成式AI技术的应用与发展

百度开发者中心

自然语言处理 #人工智能 ChatGPT 文心一言

流程图&时序图绘制小tips

得物技术

流程图 UML 画图 企业号 8 月 PK 榜

生成式AI将重塑中国云产业

百度开发者中心

智能云 ChatGPT 生成式AI 文心一言

如何给application.yml文件的敏感信息加密?

java易二三

Java 编程 程序员 计算机 科技

蚂蚁 SOFAServerless 微服务新架构的探索与实践

SOFAStack

Serverless 微服务 开发 应用架构

创建web应用程序,React和Vue怎么选?

没有用户名丶

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