1、從規范角度分析,一般是禁止使用C++的例外機制的,
2、要求所有的錯誤都應該通過錯誤值在函式間傳遞病做相應的判斷,而不應該通過例外機制進行錯誤處理,
3、編碼人員必須完全掌控自己的整個編碼程序,要有攻擊者思維,主動把握有可能出錯的環節,盡可能的分析出程式的所有例外,增強安全編碼意識,
4、使用c++例外機制的一些缺點:
(1)、增加開銷,依賴于編譯器、作業系統、處理器等,程式的性能有比較明顯的下降,這個是不建議使用的最主要的原因;
(2)、削弱編碼人員的安全意識;
(3)、打亂程式的正常執行流程,增加結構復雜度;
(4)、資源釋放不徹底,可能會導致記憶體泄漏;
(5)、降低代碼復用率,使用了例外機制的代碼,不能直接給不使用例外機制的代碼復用,
(6)、二進制程式,例外處理函式增加了受攻擊的概率,通常可以通過覆寫例外處理函式的地址,就可以達到攻擊的效果;
5、建議使用例外機制的一些特殊場景
在接收c++語言本身拋出的例外(如new失敗、STL等)、第三方庫、系統庫的介面拋出例外時,可以用例外機制捕獲;
參考:
1、https://cloud.tencent.com/developer/article/1187782
2、https://blog.csdn.net/zgaoq/article/details/103941734
3、https://www.zhihu.com/question/29459586
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488703.html
標籤:其他
下一篇:C 語言變數
