- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 1404字
- 2020-10-30 17:56:31
譯者序
隨著信息技術與相關產業的發展,人類的工作、學習與生活越來越依賴于計算機軟件和網絡,但與此同時,安全事件層出不窮,網絡攻擊造成的損失也與日俱增。就在本書的翻譯過程中,國際上發生了“棱鏡門”事件。“信息戰士”的工作使受害國家的安全都受到了威脅,更不用說竊取普通公民的網上交易信息以及個人信息了。然而,這些信息與人們的生產、生活息息相關,信息的盜用給人們造成了財產和無形的損失。這使人們比以往更加關注安全,逐漸意識到完善網絡安全勢在必行,各級政府以及各企事業單位在安全方面的投入也在不斷提高。本書正是在這樣的背景下產生的,它緊貼實際編程活動,深入淺出,幫你解決實際應用中的安全漏洞問題。
我曾經編寫過C和C++代碼,對這兩門編程語言都深有感觸。C和C++語言是實現許多操作系統和服務器軟件的開發語言,支撐著許多為數以萬計的用戶提供服務的重要應用程序,必須堅實可靠才能持續不斷地正常運行。特別是移動互聯網的發展,大大增加了應用程序的種類和數量,不安全的應用程序也會造成安全漏洞迅速地大面積傳播。因為C和C++語言產生的年代較早并且設計為與底層設備打交道,所以對效率要求很高,這使得這兩種語言存在固有的安全問題,雖然語言標準的制定者意識到了這個問題,并提出了許多更加安全的解決方案,但大量的遺留代碼中仍然包含不安全的實現和庫函數調用,這些都會不時引發安全問題。許多安全檢測工具可以幫助人們檢查出代碼的漏洞,但卻不能幫助他們把它們修改正確,而且對C語言中某些功能理解上的偏差往往會導致誤用。總而言之,編寫安全代碼完全是開發人員的責任,而開發人員若要具備這方面的技能,就得掌握相關的理論并在實踐中自覺加以運用。
本書涵蓋安全編碼各個方面,人們普遍能意識到指針是C和C++中最靈活的功能,也是程序員最容易犯錯的地方,為強調其重要性有人曾說過“不會用指針的C程序員不是真正的C程序員”,這是因為指針直接對內存地址進行讀、寫訪問,它的重要性不言而喻。但與此同時,這兩門語言的另一些要點卻常常被忽視。然而編寫安全代碼的從業人員,則需要全面地了解字符串、整數、內存管理、格式化輸入與輸出、文件操作中的安全陷阱,并學會規避之法。此外,現代應用程序絕大多數具備并發訪問能力,因此本書新增了這些方面的內容,使之更符合實際需要。本書每個主題都配有實例,讀者能從中了解產生安全漏洞的緣由和正確的做法。本書還總結了安全編碼的實施指南,指出軟件開發組織應用這些規程可以提高安全軟件的開發效率并更能保證產品符合安全要求。本書引用了許多相關著作,以便于讀者進一步了解某個主題的細節。總之,本書值得每個從業人員在開始實際編程活動前閱讀。
此外,本書作者Robert C.Seacord是業界著名的安全專家,著有多本安全編程著作。他所領導的CERT項目定期發布安全報告,并與軟件廠商合作解決安全問題,在安全領域碩果累累。本書很多內容引用自實際的安全問題,并結合了國際標準C11和C++11展開敘述,實用且跟蹤了C和C++語言的最新發展。因此,我鄭重向您推薦此書,希望它能在檢測及修復安全漏洞上對您有所幫助!
感謝機械工業出版社謝曉芳編輯邀請我翻譯本書并對譯文細致地審查和潤色。感謝本書第1版譯者榮耀和羅翼先生做出的貢獻,他們的辛勤工作保障了本書的順利完成。
感謝我的妻子李穎一如既往的支持和兒子盧〇一的鼓勵,他們是我工作的動力。
希望這本書能對讀者有所幫助。由于譯者經驗和水平有限,譯文中難免有不妥之處,懇請讀者批評指正!
盧濤
- Visual Basic程序設計教程
- 編寫高質量代碼:改善Python程序的91個建議
- Python Tools for Visual Studio
- x86匯編語言:從實模式到保護模式(第2版)
- Python漫游數學王國:高等數學、線性代數、數理統計及運籌學
- Unity 2D Game Development Cookbook
- Windows內核編程
- WebStorm Essentials
- 深度學習入門:基于Python的理論與實現
- Android 游戲開發大全(第二版)
- Beginning PHP
- 微信小程序開發圖解案例教程:附精講視頻(第3版)
- R Data Visualization Cookbook
- Mastering Web Application Development with Express
- HTML 5+CSS 3+jQuery Mobile移動網站與APP開發實戰