详细内容或原文请订阅后点击阅览
C++ 即将退役。 Chrome 切换到 Rust 以摆脱旧漏洞
Chromium 创建了一个通用架构来逐步将图像解码器过渡到 Rust。
来源:安全实验室新闻频道C++ 即将退役。 Chrome 切换到 Rust 以摆脱旧漏洞
Chromium 创建了一个通用架构来逐步将图像解码器过渡到 Rust。
网页上的图像可能看起来无害,但它们的处理方式多年来一直是浏览器的弱点之一。 Chromium 开发人员正在逐步将图像解码器从 C++ 迁移到 Rust,以减少内存损坏漏洞,同时不会降低网站速度。
浏览器直接从互联网接收图像,甚至在文件完全下载之前就开始解析它们。专门准备的图片可能会利用解码器中的错误,导致崩溃或运行恶意代码。此类问题在大型且复杂的 C++ 组件中尤其常见,在这些组件中很难完全排除程序访问错误内存位置的可能性。
第一个工作示例是 Rust 中的 PNG 解码器。他表明可以在 Chromium 中实现更安全的语言,而不会损失兼容性或性能。微软后来加入了该项目,并帮助将单一实验转变为可应用于其他格式的通用框架。
下一个格式是 BMP。微软基于 Rust 图像库创建了一个新的解码器,并对其进行了修改,以便浏览器可以在加载文件时分部分处理文件。 Chromium 需要此模式,因为浏览器不会等到收到整个图像并立即开始处理。
新的 BMP 解码器已经可以在基于 Chromium 的浏览器中运行。他们在大约六个月内成功切换到它,而团队在早期阶段在 PNG 上工作的时间要长得多。开发人员重用了与 Chromium 和 Skia 图形库通信的现成机制,还应用了现有测试、检查兼容性并在真实用户上测试了解码器。
