.Net開發(fā)人員常犯的6大安全錯(cuò)誤
原創(chuàng)【51CTO.com 獨(dú)家翻譯】業(yè)內(nèi)分析人士估計(jì),有超過70%的安全漏洞是在應(yīng)用程序中被發(fā)現(xiàn)的,大部分都是由代碼內(nèi)存在的安全缺陷引起的。
微軟已經(jīng)為.Net環(huán)境添加了大量的功能,幫助開發(fā)人員創(chuàng)建安全的應(yīng)用程序,例如,身份驗(yàn)證已經(jīng)成為開發(fā)環(huán)境集成的一個(gè)功能,另外,默認(rèn)情況下調(diào)試消息被禁用掉了。微軟對(duì)安全的關(guān)注程度極大地影響了開發(fā)人員,促使他們?cè)谲浖_發(fā)過程中重新評(píng)估納入安全保障的重要性。
但遺憾的是不是每個(gè)人都能做得很好,據(jù)來自SPI Dynamics公司的客戶服務(wù)記錄顯示,.Net開發(fā)人員常犯以下6大安全錯(cuò)誤:
1、在開發(fā)過程中沒有考慮安全
如果在整個(gè)應(yīng)用程序開發(fā)過程中做到了安全地編碼,將會(huì)使開發(fā)周期和成本減小到最低。此外,安全開發(fā)實(shí)踐將會(huì)使應(yīng)用程序更穩(wěn)定,錯(cuò)誤更少,但如果不考慮安全,直到產(chǎn)品生命周期中的QA或用戶驗(yàn)收階段才考慮安全性,很可能會(huì)導(dǎo)致返工,延遲交付,最終導(dǎo)致成本超支。
2、SQL注入
SQL注入就是向應(yīng)用程序提交非開發(fā)人員本意的SQL代碼,這些SQL代碼往往具有陰險(xiǎn)的目的,如果Web應(yīng)用程序把關(guān)不嚴(yán),它們將傳遞給數(shù)據(jù)庫,數(shù)據(jù)庫一般是無法識(shí)別SQL是否具有惡意,它只管執(zhí)行接收到的命令。
例如,當(dāng)開發(fā)人員沒有保護(hù)潛在的惡意輸入字符(`)時(shí),攻擊者就可以偽造SQL字符串,使系統(tǒng)和應(yīng)用程序的訪問權(quán)直接暴露給攻擊者。
3、跨站腳本攻擊
跨站腳本是由用戶輸入產(chǎn)生的,返回給用戶有用的信息,在動(dòng)態(tài)生成的網(wǎng)頁顯示沒有經(jīng)過驗(yàn)證的輸入時(shí)就可能發(fā)生跨站腳本攻擊(也被稱為XSS或CSS),這樣攻擊者可以在生成的頁面中插入惡意JavaScript代碼,只要用戶訪問了該頁面,他使用的機(jī)器就會(huì)執(zhí)行惡意JavaScript代碼。
攻擊者使用跨站腳本攻擊可能會(huì)獲得一些機(jī)密信息,操縱或竊取Cookie,為有效的用戶創(chuàng)建一個(gè)錯(cuò)誤請(qǐng)求,或在最終用戶系統(tǒng)上執(zhí)行惡意代碼。
4、使用用戶輸入作為文件名
開發(fā)人員經(jīng)常使用一個(gè)參數(shù)確定哪些文件應(yīng)該顯示給最終用戶。如:myPageGenerator.aspx?Template=Welcome.html。
如果使用這種功能,關(guān)鍵是要確保請(qǐng)求的文件在正確的文件夾中,攻擊者可以修改查詢字符串訪問本不能訪問到的文件。
攻擊者示例:myPageGenerator.aspx?Template=../../../../../../boot.ini。
5、不當(dāng)?shù)厥褂肅ookie和隱藏參數(shù)
開發(fā)人員經(jīng)常會(huì)在Cookie和隱藏參數(shù)中存儲(chǔ)信息,Cookie是從服務(wù)器發(fā)送給客戶端瀏覽器HTTP消息頭中的一段信息,隱藏參數(shù)是在HTML表單中隱藏的控件名稱和值,許多Web服務(wù)器使用Cookie存儲(chǔ)會(huì)話令牌和其它基于會(huì)話的令牌。
常見的錯(cuò)誤包括將產(chǎn)品定價(jià),信用卡號(hào)碼,帳戶和其它關(guān)鍵信息存儲(chǔ)在Cookie和隱藏參數(shù)中。開發(fā)人員必須記住,攻擊者可以很容易修改Cookie。
6、在Web.config文件中開啟調(diào)試選項(xiàng)
Web.config文件的
下表顯示了有效的設(shè)置:
![]() |
表1 |
描述摘自Visual Studio .Net默認(rèn)產(chǎn)生的Web.config文件。
總結(jié)
無論安全漏洞是否被公開,攻擊者能訪問你的敏感數(shù)據(jù)是事實(shí),應(yīng)該引起公司、股東和最重要的,你的客戶的高度重視。SPI Dynamics發(fā)現(xiàn),大多數(shù)公司談到自身應(yīng)用程序的安全問題時(shí)都很謹(jǐn)慎,看來應(yīng)用程序安全問題在未來一段時(shí)間內(nèi)仍將會(huì)是攻擊者的首選目標(biāo)。
【51CTO.COM 獨(dú)家翻譯,轉(zhuǎn)載請(qǐng)注明出處及作者!】
【編輯推薦】