《C和C 安全編碼》目錄

2021-10-03 18:57:32 字數 1404 閱讀 3464

原文:

看《c和c++安全編碼》這本書時,覺得寫得非常的不錯,總結了程式設計時容易出現錯誤的地方,所以自己總結一遍。

本篇文章是《c和c++安全編碼》小節目錄,本次將會乙個小節一篇文章的方式進行逐步總結,每次更新一小節。

書中的原始碼會親自編碼並將原始碼放在小節講解中。

文章主要公布在個人**和csdn部落格。

第一章主要是介紹由於可能編碼問題和黑客攻擊事件,以及造成的嚴重後果,不贅述,可自行看原書

2.1 字串的特徵

2.2 常見的字串操作錯誤

2.3 字串漏洞

2.4 程序記憶體組織

2.5 棧粉碎

2.6 **注入

2.7 弧注入

2.8 緩解策略

2.9 著名的漏洞

2.10 小結

3.1 資料位置

3.2 函式指標

3.3 資料指標

3.4 修改指令指標

3.5 全域性偏移表

3.6 .dtors區

3.7 虛指標

3.8 atexit()和on_exit()函式

3.9 longjmp()函式

3.10 異常處理

3.11 緩解策略

3.12 小結

4.1 動態記憶體管理

4.2 常見的動態記憶體管理錯誤

4.3 doug lea的記憶體分配器

4.4 rtlheap

4.5 緩解策略

4.6 著名的漏洞

4.7 小結

5.1 整數

5.2 整數轉換

5.3 整數錯誤情形

5.4 整數操作

5.5 漏洞

5.6 緩解策略

5.7 著名的漏洞

5.8 小結

6.1 變參函式

6.2 格式化輸出函式

6.3 對格式化輸出函式的漏洞利用

6.4 棧隨機化

6.5 緩解策略

6.6 著名的漏洞

6.7 小結

7.1 併發

7.2 檢查時間和使用時間

7.3 作為鎖的檔案和檔案鎖定

7.4 檔案系統利用

7.5 緩解策略

7.6 小結

8.1 安全的軟體開發原則

8.2 系統質量需求工程

8.3 威脅建模

8.4 使用/誤用案例

8.5 結構與設計

8.6 現成軟體

8.7 編譯器檢查

8.8 輸入驗證

8.9 資料淨化

8.10 靜態分析

8.11 質量保證

8.12 記憶體許可權

8.13 深層防禦

8.14 tsp-secure

8.15 小結

C 安全編碼 函式

由於c語言風格的陣列,預設沒有結束符,當讀取陣列時需要自己根據陣列長度進行判斷。這個也是c c 比其他語言執行效率高的一點原因。對於設計成api的函式,必須對引數進行合法性判斷,嚴禁在api實現過程中產生crash。assert,第一會產生crash,release版本又無效 所以assert就顯得...

《C和C 安全編碼》讀書筆記(一)

1.1 衡量危險 1.2 安全概念 1.3 c c 2.1 字串 2.1.1 字串資料型別 字串的一些術語 2.1.2 utf 8 utf 8是乙個多位元組字符集,它可以表示在unicode字符集中的每個字元,而且與美國7位ascii字符集向後相容。每個utf 8字元由1 4個位元組表示。乙個具有前...

C安全編碼 預處理

建議 規則 巨集是危險的,用法與真正的函式相似,但是具有不同的語義。c99在c中增加了內聯函式,當內聯函式和巨集可以互換使用時,應該優先選擇內聯函式,內聯替換並不是文字替換,也沒有建立函式,決定乙個函式是否為內聯函式是乙個底層的優化細節,編譯器應該不依賴程式換做出這個決定,是否使用內聯函式取決於目標...