Love C, Hate C: Web Framework Memory Problems
7 months ago
- #security
- #memory safety
- #C programming
- 作者喜爱C语言,因其简洁性、高效性以及与计算机建立的紧密联系。
- 在作者所有的个人项目中都使用了C语言,包括图形渲染引擎的开发。
- 尽管优势显著,C语言仍被视为危险语言,由于安全漏洞的存在,广泛分享新的C项目存在风险。
- 一个用C语言编写的Web框架被发现存在内存安全问题,特别是在解析HTTP请求时。
- 代码示例展示了漏洞:未经校验直接使用HTTP数据包中的'Content-Length'字段,可能导致堆数据复制问题。
- 该项目中使用有符号整数表示长度,引发了对负值处理的质疑。
- 恶意用户可通过篡改'Content-Length'请求头利用这些漏洞,可能引发未定义行为。
- 作者承认C语言的优雅性,但也指出这类安全问题可能带来的困扰。