緩衝區過讀

在計算機安全和程序設計中 ， 緩衝區過讀是一類程序錯誤 ， 即程序從緩衝器讀出數據時超出了邊界 ， 而讀取了 （ 或試圖讀取 ） 相鄰的內存 。 這是有違的一個例子 。 通過構造惡意輸入 ， 使得缺乏邊界檢查的程序讀取不該訪問到的內存 ， 可以觸發緩衝區過讀 ， 如在心臟出血漏洞裏的那樣 。 引發的原因也可能僅僅是編程中的錯誤 。 這可能會導致異常的程序行爲 ， 包括內存訪問錯誤 、 不正確的結果 、 或系統安全性損害 。 因而 ， 有許多漏洞都因其而生 ， 還可能被惡意利用以訪問特權信息 。 通常與緩衝區過讀相聯繫的編程語言語言包括C和C + + ， 這些語言都沒有提供內置的保護機制 ， 以防止使用指針訪問虛擬內存任意位置的數據 ， 並且不會自動檢查讀取該內存塊的數據是否安全 ； 對應的例子如試圖讀取比數組更多的元素 ， 以及沒有向末尾追加終止符 。 邊界檢查可以防止緩衝區過讀 ， 而模糊測試有助於檢測出這些錯誤 。