安全編碼原則之驗證輸入中的常見的輸入源
2018-04-08 20:09:15 | 來源:中培企業IT培訓網
常見的輸入源包括:
1)命令行參數:有些軟件程序啟動時能接收來自命令行的參數輸人,對這些參數需要進行嚴格的檢查,包括參數的數量、格式和長度等。
2)環境變量:軟件程序中可能讀取、使用環境變量,由于常會誤認為環境變量是操作系統的變量j軟件開發人員容易認為其可信,從而忽視對其的驗證。環境變量作為輸入有可能存在的危險包括長度過長、內容篡改、格式不符等。
3)文件及文件名:考慮到外部文件更容易被攻擊者篡改,因此軟件程序中讀入外部文件時,需要對文件進行驗證,檢查的內容同樣包括長度、格式和內容等各個方面。此外,對文件名也需要加強輸入檢查,不同的操作系統可能采用不同的文件命名要求,甚至對文件名的路徑保護、鏈接使用等措施也不一樣,軟件程序如果不對輸入的文件名進行檢查,可能被攻擊者利用后來篡改或刪除某些系統文件。
4)網絡數據:網絡數據是高度不可信的。只要是通過網絡傳遞過來的數據,不管是數據內容本身,還是組成網絡包的數據頭(如表示來源IP地址區域),都是極容易被攻擊者篡改和偽造。因此,對網絡數據更需要進行嚴格的驗證檢查。
5)其他來源:軟件程序還存在很多其他的輸入,如信號、內存映射、系統管道等,安全的程序不應當忘記對這些輸入來的數據進行驗證檢查。
對輸入的驗證檢查,具體到不同的軟件程序中有不同的要求。一般地,對字符串、數字、文件名、郵件地址、URL等不同的數據串有不同的通用性規則,如數字需要主要檢查整數溢出、合法范圍等;對郵件地址主要檢查格式、特殊字符等;對文件名主要檢查長度、特殊字符等。
標簽:
網絡數據
- 上一篇:安全編碼原則之驗證輸入
- 下一篇:安全編碼原則之避免緩存溢出