本書是關于C和C++安全編碼的著作。本書介紹了C和C++程序中已經導致危險的、破壞性的基本編程錯誤,包括在字符串、指針、動態(tài)內存管理、整數、格式化輸出、文件I/O等中的漏洞或缺陷。本書還提供了對這些編程錯誤的深入剖析,并給出緩解策略,以減少或消除惡意利用漏洞的風險。本書適合C/C++程序員、軟件安全工程師參考。洞悉軟件漏洞的成因,熟知規(guī)避之道通常而言,可利用的軟件漏洞都由本可避免的軟件缺陷所導致。在分析了過去10年中近18000份漏洞報告后,CERT/CC發(fā)現少量的根本原因導致了這些漏洞的產生。本書識別并解釋了這些原因,而且展示了預防利用漏洞的步驟。此外,本書還鼓勵程序員采用最佳安全實踐,并培養(yǎng)安全的開發(fā)理念,這不但有助于保護軟件免遭當前的攻擊,更可使它們免遭將來可能發(fā)生的攻擊?;贑ERT/CC的報告和總結,Robert Seacord系統(tǒng)地揭示了最可能導致安全缺陷的編程錯誤,展示了這些缺陷的利用方式,介紹了可能導致的后果,并提供了安全的替代做法。本書特別討論了如下技術細節(jié):改善任何C/C++應用程序的整體安全性。抵御利用不安全的字符串操作邏輯的緩沖區(qū)溢出和棧粉碎攻擊。避免因對動態(tài)內存管理函數的不當使用而導致的漏洞和安全缺陷。消除與整數相關的問題,包括整數溢出、符號錯誤以及截斷錯誤等。正確地使用格式化輸出函數,避免引入格式字符串漏洞。避免I/O漏洞,包括競爭條件等。本書提供了許多針對Windows和Linux的安全代碼、不安全代碼以及利用程序的例子。如果你負責創(chuàng)建安全的C或C++軟件,或者需要保持這類軟件的安全性,本書為你提供了詳盡的專家級協助。在這方面,其他任何書籍都望塵莫及。