关于防御式编程 (Defensive programming )和安全编码
生活随笔
收集整理的這篇文章主要介紹了
关于防御式编程 (Defensive programming )和安全编码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
1. 啥是防御式編程?
2. 防御式編程的目標
3 防御式編程的好處
4 防御式編程帶來的負面影響
5. secure programming
5.1 secure programming安全編程的目標
5.2 安全編程的好處
5.3 潛在的風險
5.4 securing coding practice 安全編碼實踐
1. 啥是防御式編程?
?
簡單來說,防御式編程是軟件設計的方法,用來提高軟件的整體質量,用來防止/減少/消除錯誤,這些錯誤可能是用戶的濫用或者一些惡意的攻擊
2. 防御式編程的目標
- 確保軟件能一直執行預期的功能(按預期工作)
- 預防/阻止用戶故意的無效輸入(讓用戶輸入姓名,用戶輸入')
- 減少惡意攻擊可能
- 減少應用的downtime
3 防御式編程的好處
- 增加軟件的可靠性,軟件按預期工作
- 增加安全性 (保護個人信息,敏感數據等)
- 更好的用戶體驗(沒那么復雜的UI,增加availability)
4 防御式編程帶來的負面影響
- 增加了開發時間(more code = more time)
- 減少代碼可讀性
- 增加維護時間
- 影響開發的速度
盡管防御式編程增加了開發時間,但還是利大于弊的,多花點時間開發出高質量安全穩定的應用軟件是值回票價的!
5. secure programming
說到防御式編程就要提到secure programming 安全編碼,可以理解為防御式編程的一個子集
是關注安全漏洞(誰能訪問應用,這些訪問者能做啥。。。)
用來保護數據和網絡資產
5.1 secure programming安全編程的目標
CIA搞安全的同學都不陌生了吧
C:confidentiality 保密。包括系統資產的訪問控制
I:integrity 完成性。 包括限制授權用戶對資產的訪問,控制資產如何被修改
A:availability 可用性。包括取保資產對用戶可用,防止dos攻擊
5.2 安全編程的好處
- 限制授權用戶的訪問
- 確保數據輸入輸出是一致的并且受保護的
- session管理是受控且安全的
- 數據存儲和傳輸是受保護的
5.3 潛在的風險
實施安全編程要先了解到潛在的風險有哪些,然后才能有的放矢
- 用戶輸入,不正確的輸入類型或者無效的輸入
- 外部數據,數據庫或者web services
- 訪問安全不足,例如未經授權的用戶
- 不良編碼技術,代碼亂
- 錯誤處理做的不好,沒有處理的異常exception 或者不充分的輸入驗證
- 惡意攻擊,黑客,病毒,厄索病毒。。。
5.4 securing coding practice 安全編碼實踐
- 輸入驗證,檢查用戶所有輸入,外部數據
- 數據凈化
- 實施安全策略
- 默認 deny access
- 最小特權
- 簡化設計
- 威脅建模來識別并對潛質風險分類
- 縱深防御
- 定義安全需求,并引入安全編碼規范
總結
以上是生活随笔為你收集整理的关于防御式编程 (Defensive programming )和安全编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一个以pubs数据库为例的SQL SER
- 下一篇: Note for Defensive P