缓冲区过读

在计算机安全和程序设计中，缓冲区过读是一类程序错误，即程序从緩衝器读出数据时超出了边界，而读取了（或试图读取）相邻的内存。这是有违内存安全的動作。

通过构造恶意输入，使得缺乏边界检查的程序读取不该访问到的内存，可以触发缓冲区过读，如心脏出血漏洞中所出現的情形。引发此一錯誤的原因也可能仅仅是编程中的错误。这可能会导致异常的程序行为，包括内存访问错误、不正确的结果、或系统安全性损害。因而，有许多漏洞都因其而生，还可能被恶意利用以访问特权信息。

通常与缓冲区过读相联系的编程语言语言包括C和C++，这些语言都没有提供内置的保护机制，以防止使用指针访问虚拟内存任意位置的数据，并且不会自动检查读取该内存块的数据是否安全；对应的例子如试图读取比数组更多的元素，以及没有向末尾追加终止符。边界检查可以防止缓冲区过读，而模糊测试有助于检测出这些错误。

参见 
 缓冲区溢出
 计算机安全
 型別安全

参考

外部链接 
 PHP DateInterval Heap Buffer Overread Denial of Service
 PHP Bug #66060: Heap buffer over-read in DateInterval 

程式錯誤
電腦記憶體
保全漏洞