一、背景
團隊最近頻繁遭受網絡攻擊,引起了部門技術負責人的重視,筆者在團隊中相對來說更懂安全,因此花了點時間編輯了一份安全開發自檢清單,覺得應該也有不少讀者有需要,所以將其分享出來。
二、編碼安全
2.1 輸入驗證
說明 | 檢查項 |
---|---|
概述 | 任何來自客戶端的數據,如URL和參數、HTTP頭部、 Javascript戓其他嵌入代碼提交的信息,都屬于不可信數據。在應用外部邊界或內部每個組件或功能邊界,都將其當做潛在的惡意輸入來校驗 |
白名單 | 不可信數據可以設定白名單校驗的,應接受所有和白名單匹配的數據,并阻止其他數據 |
黑名單 | 不可信數據中包含不良輸入字符時,如空字節(%00)、換行符(%0d,%0a,\r, \n)、路徑字符(…/ 或 …)等,建議直接阻止該數據,若需要接受該數據,則應做不同方式的凈化處理 |
規范化 | 不可信數據的凈化和校驗前翯進行規范化,如將目錄遍歷(./或)等相對路徑轉化成絕對路徑URL解碼等。 |
凈化 | 不可信數據需實施各種凈化處理時,應徹底刪除惡意字符,只留下 |