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