在Web應(yīng)用占主流的今天,主流的黑客也都把攻擊的目標(biāo)轉(zhuǎn)向了Web應(yīng)用,SQL Injection, XSS... 各種攻擊技術(shù)層出不窮,但是蒼蠅不叮無縫的蛋,這么多種攻擊技術(shù)無非都是把有毒的東西送到了蛋的內(nèi)部。所以說只要輸入校驗(yàn)做的好就可以阻止90%-95%的攻擊。如何做輸入校驗(yàn)才能盡可能的彌補(bǔ)所有的縫呢?下面這幾個(gè)注意事項(xiàng)或許可以幫你一些
1. 找到Web應(yīng)用所有的輸入點(diǎn),找到所有的能接受用戶輸入的地方,漏掉輸入點(diǎn)也就漏掉了可能存在的縫。
2. 過濾每一個(gè)輸入點(diǎn),為每個(gè)輸入點(diǎn)設(shè)定相應(yīng)的校驗(yàn)規(guī)則和邊界。
3. 不要忘記校驗(yàn)?zāi)男╇[藏域,cookie和url參數(shù)。
4. 驗(yàn)證從數(shù)據(jù)庫里面得到的數(shù)據(jù),這個(gè)是最容易忽視的地方,不要相信來自數(shù)據(jù)庫里面的數(shù)據(jù)就是合法的數(shù)據(jù)。
5. 你是如何做輸入校驗(yàn)的? javascript?如果只是用javascript做客戶端校驗(yàn), 風(fēng)險(xiǎn)還是很大的,一定要確保加上服務(wù)端的校驗(yàn),否則如果客戶端禁用了javascript或者客戶端代碼被人工修改,非法數(shù)據(jù)還是會進(jìn)入系統(tǒng)內(nèi)部的。
6. 隱藏異常信息,再周全的校驗(yàn)也不可能覆蓋所有的case,如果非法數(shù)據(jù)造成了系統(tǒng)的異常,不要將詳細(xì)的異常信息暴露給客戶端,這些異常信息有可能成為系統(tǒng)的攻擊入口。
在做輸入校驗(yàn)的時(shí)候,從“什么樣的輸入才是合法的”入手會降低驗(yàn)證失效的風(fēng)險(xiǎn),應(yīng)該只為每個(gè)輸入點(diǎn)的輸入內(nèi)容制定一個(gè)有限的,剛好夠用的合法范圍,除此之外的所有內(nèi)容都當(dāng)做是非法的。而從“什么樣的輸入是不合法的”入手則會增加驗(yàn)證失效的可能,因?yàn)槟悴豢赡芨F舉非法的輸入。
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答??! 點(diǎn)擊進(jìn)入論壇