安全編碼原則之程序內部安全
2018-04-08 20:12:40 | 來源:中培企業(yè)IT培訓網
3. 程序內部安全
軟件程序在編碼完成實際部署后,在實際運行過程中,會碰到各種情況,如每次運行時操作系統(tǒng)內存分配情況不同,系統(tǒng)資源分配情況不同,不同用戶的輸入不同,同時存在的其他進程不同,網絡連接情況不同等等。這些不同情況不可能在軟件測試過程中模擬得到,只有靠良好的軟件設計和編碼來保證軟件的正確運行,因此,軟件在代碼執(zhí)行過程中,動態(tài)地檢查自身運行情況,確保軟件按照預期正確處理各種情況。
1)程序內部接口安全:軟件程序內部也存在多個組件、多個函數(shù)之間的互相調用,因此,組件或函數(shù)的調用過程也需要檢查能否調用成功,參數(shù)傳遞是否合理和安全。一個簡單的例子是,某個軟件內部需要將用戶的中文姓名由一個函數(shù)傳遞給另外一個函數(shù),如果被調用函數(shù)想當然地只分配了8個字節(jié)的空間來接收該中文姓名,那么在碰到有五個漢字的中文姓名時就會出現(xiàn)問題。
2)異常安全處理:軟件程序在運行過程中可能會出現(xiàn)某種錯誤而導致中斷正常的控制流,這就是異?,F(xiàn)象。對于異常,軟件程序應當提供異常安全處理代碼,使其能檢測出各種異常,并安全處理各種可能的運行路徑,保證程序總能“正確”的運行。不提供異常處理代碼的軟件程序可能會在異常發(fā)生的時候停止運行,嚴重的甚至可能引發(fā)安全問題。如某個銀行轉賬程序,如果在用戶試圖轉賬時發(fā)生運行時錯誤(比如要調用的某個動態(tài)庫加載不成功),沒有安全處理程序,則該軟件程序可能會導致用戶的資金已經轉出,同時接收方賬號尚未收到資金況。
標簽:
程序內部安全