主要观点:谷歌的安全团队近期在写关于“时间(内存)安全”和“空间(内存)安全”的内容,作者初遇这些术语时需花时间理解,遂写下供他人参考。
关键信息:
- 空间内存安全:描述越界访问等违规行为,如一个有 10 个元素的 vec,读取不存在的第 11 个元素的内存位置是未定义行为,与内存区域(空间)有关。
- 时间内存安全:描述使用后释放等违规行为,如已初始化的类型被重新初始化后读取其字段是未定义行为,与内存操作的顺序(时间)有关。
重要细节:作者认为偶尔有人会省略“内存”限定词,这导致术语易混淆,其他与布局或排序有关的安全属性并非内存安全。以同时向同一 TCP 套接字写 HTTP 为例,若不仔细协调会导致涉及操作顺序(时间安全)的问题,而非内存安全违规。作者建议讨论空间和时间内存安全时应完整提及,不要省略“内存”限定词,以确保所讨论的正式建模属性的准确性。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。