- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 346字
- 2020-10-30 17:56:47
2.6.12 未來發展方向
未來的緩沖區溢出預防機制將超過惠普aCC、英特爾ICC和GCC編譯器的現有能力,提供完整的覆蓋,它通過把更深入的編譯時檢查和運行時檢查相結合,并盡量減少所需的開銷來實現這一目標。這樣的機制之一是有安全保證的C/C++(Safe-Secure C/C++,SSCC)。
SSCC推斷函數的要求和保證,并利用它們來發現是否滿足所有要求。例如,在下面的函數中,n必須是一個s指針所指向的數組的合適大小。此外,返回的字符串保證以空字符結尾。
1 char *substring_before(char *s, size_t n, char c) { 2 for (int i = 0; i < n; ++i) 3 if (s[i] == c) { 4 s[i] = '\0'; 5 return s; 6 } 7 s[0] = '\0'; 8 return s; 9 }
為了發現和跟蹤函數和源文件之間的要求和保證,SSCC使用了一個邊界數據文件。圖2.19顯示了SSCC機制的一種可能的實現。
圖2.19 一個可能的“有安全保證的”C/C++(SSCC)實現
如果給SSCC提供應用程序的整個源代碼,包括所有的庫,它就可以保證不存在緩沖區溢出。
推薦閱讀
- ClickHouse性能之巔:從架構設計解讀性能之謎
- JavaScript語言精髓與編程實踐(第3版)
- Python網絡爬蟲從入門到實踐(第2版)
- Processing互動編程藝術
- Windows Presentation Foundation Development Cookbook
- 實戰Java高并發程序設計(第3版)
- H5頁面設計:Mugeda版(微課版)
- C++新經典
- Create React App 2 Quick Start Guide
- 測試架構師修煉之道:從測試工程師到測試架構師
- Deep Learning for Natural Language Processing
- Learning Apache Thrift
- Thymeleaf 3完全手冊
- GO語言編程從入門到實踐
- 網頁設計理論與實踐