網(wǎng)站程序的安全是系統(tǒng)開(kāi)發(fā)職員必需考慮的重要因素之一,由于這涉及到網(wǎng)站的建設(shè)者、網(wǎng)站用戶(hù)的諸多安全題目,假如不處理好,可能會(huì)給系統(tǒng)的使用者和治理者帶來(lái)嚴(yán)峻題目。同時(shí)Web應(yīng)用程序的安全解決方案不僅是技術(shù)題目,還涉及到治理等多個(gè)方面。
技術(shù)開(kāi)發(fā)職員都可能使用過(guò)其中一種或者都使用過(guò),但是有時(shí)我們?cè)陂_(kāi)發(fā)的過(guò)程中并沒(méi)有特地的引起正視,在每一個(gè)細(xì)節(jié)的處理時(shí)未留意網(wǎng)站的安全性,結(jié)果可能導(dǎo)致一些安全漏洞。但愿通過(guò)此文使開(kāi)發(fā)職員能夠更加注重系統(tǒng)安全性,尤其測(cè)試職員能夠通過(guò)監(jiān)視去保證系統(tǒng)的安全性,進(jìn)步產(chǎn)品質(zhì)量。
防止SQL注入技術(shù)
為什么必需防止SQL注入?相稱(chēng)大一部門(mén)程序員在編寫(xiě)代碼的時(shí)候,沒(méi)有對(duì)用戶(hù)輸入數(shù)據(jù)的正當(dāng)性進(jìn)行判定,使應(yīng)用程序存在安全隱患。新手最輕易忽略的題目就是SQL注入漏洞的題目。用NBSI2.0對(duì)網(wǎng)上的網(wǎng)站掃描,就能發(fā)現(xiàn)部門(mén)網(wǎng)站存在SQL注入漏洞,用戶(hù)可以提交一段數(shù)據(jù)庫(kù)查詢(xún)代碼,根據(jù)程序返回的結(jié)果,獲得某些他想得知的數(shù)據(jù)。
怎樣防止SQL注入?
好比URL、表單等提交信息時(shí),通過(guò)一段防止SQL注入的過(guò)濾代碼即可防止犯錯(cuò)信息暴露,或者通過(guò)轉(zhuǎn)向,當(dāng)系統(tǒng)犯錯(cuò)時(shí)轉(zhuǎn)到一個(gè)提示犯錯(cuò)的頁(yè)面等。同時(shí)服務(wù)器權(quán)限設(shè)置是一個(gè)非常重要的方面,因?yàn)樯婕暗椒⻊?wù)器的配置比較多,本文不先容。
對(duì)于文本型輸入,假如要進(jìn)行檢查,就得根據(jù)字段本身的性質(zhì)進(jìn)行。例如假如是春秋,就得限定必需是數(shù)字,大小必需限定在一個(gè)范圍之間,好比說(shuō)18-120之間。對(duì)于用戶(hù)名,應(yīng)該建立一個(gè)集合,這個(gè)集電子商務(wù)資料庫(kù)$"9.#+.+4&;7,9合里存放有被答應(yīng)的字符,或被禁止的字符。這里特別需要說(shuō)明的一點(diǎn)是關(guān)于檢查程序的題目。目前,程序?qū)斎霐?shù)據(jù)的檢查是在前臺(tái)通過(guò)客戶(hù)端腳本完成的,這樣攻擊者很輕易就可以繞過(guò)檢查程序。建議采用前后臺(tái)結(jié)合的方法,既可以保證效率,又可以進(jìn)步安全性。
|