軟體開發設計人員應防範的「25個最危險的程式設計錯誤」

網路無處不在的今天,安全問題日益嚴峻,攻擊事件層出不窮,應該說,軟體系統中程式設計存在安全性漏洞是主要的禍因之一。而這實際上反映了軟體發展人員在程式設計的安全性方面缺乏必要的培訓和常識。

由CWS(美國國土安全部下屬的軟體保證專案)與SANS(權威安全培訓組織)聯合編制的最危險的25個程式設計錯誤,是軟體開發人員非常好的快速學習資料。日前,兩個機構發佈了2010年的程式設計錯誤清單。最新的25個最危險的程式設計錯誤如下。

  1. 跨網站腳本攻擊(4)
  2. SQL注入(3)
  3. 經典緩衝區溢位(1)
  4. 跨網站請求偽造(7)
  5. 不正確的存取控制(授權)
  6. 在安全決策中依賴不可信的輸入
  7. 不正確地將路徑名限制為受限路徑
  8. 上傳危險類型的文件不受限
  9. 作業系統命令中特殊因素的處理不正確(作業系統命令注入)(5)
  10. 敏感資訊未加密(6)
  11. 使用硬編碼憑據(21)
  12. 以不正確的長度值訪問緩衝區
  13. PHP程式中Include/Require語句檔案名控制不正確(PHP檔侵入)
  14. 陣列下標驗證不正確
  15. 異常條件檢查不正確
  16. 錯誤消息洩露資訊(9)
  17. 整數溢出
  18. 緩衝區大小計算錯誤
  19. 關鍵函數缺乏身份驗證
  20. 下載未經完整性檢查的代碼(15)
  21. 對關鍵資源的錯誤許可權分配(22)
  22. 資源配置沒有限制
  23. URL重導向到不受信的資源
  24. 使用被破解或有風險的加密演算法(20
  25. 存在競爭情況(Race condition)(8)

其中後加括弧有數字的,是該項錯誤去年的排名。顯然,連續兩年都入選的錯誤,千萬不要再犯了。

另外,我們對比了去年前25名名單,列出今年落榜的錯誤如下,相信這些錯誤仍然具有相當的風險性。

2. 不正確的編碼或轉義輸出
10.限定緩衝區內操作失敗
11. 外部控制重要狀態資料
12. 外部控制檔案名或路徑
13. 不可信搜索路徑控制
14.代碼生成錯誤(代碼注入)
15. 錯誤的資源關閉或發佈
17.不正確的初始化
18. 錯誤計算
19. 可滲透防護
23. 隨機值的錯誤利用
24. 濫用特權操作
25. 用戶端執行伺服器端安全

(此篇文章為網路轉載,如有冒犯,請來信告知,當即刻移除!)