嚴(yán)防緩沖區(qū)溢出攻擊的防御策略
了解了緩沖區(qū)溢出是如何發(fā)生的以后,如何防止黑客利用緩沖區(qū)溢出攻擊并控制你的本地應(yīng)用程序就是一個很重要的問題了。
避免使用編譯器中自帶的庫文件
編程語言通常都要帶有庫文件。如果一個庫文件具有某些漏洞,任何包括該庫文件的應(yīng)用程序就都會有這些漏洞。因此,黑客往往會先試圖利用常用的庫文件中已知的漏洞來達到攻擊本地應(yīng)用程序的目的。
庫文件本身也不可靠。雖然最新的編譯器都開始加入大量可靠的庫文件,但長期以來庫文件為了提供了快速、簡單的方式來完成任務(wù),幾乎沒有考慮到安全編碼的問題。C + +編程語言就是這種形式的最典型代表。而用C + +編寫的程序中依賴的標(biāo)準(zhǔn)庫就很容易在運行時產(chǎn)生錯誤,這也為希望利用緩沖區(qū)溢出進行攻擊的黑客們提供了實現(xiàn)他們想法的機會。
驗證所有的用戶輸入
要在本地應(yīng)用程序上驗證所有的用戶輸入,首先要確保輸入字符串的長度是有效長度。舉個例子,假設(shè)你的程序設(shè)計的是接受50個文本字符的輸入,并將它們添加到數(shù)據(jù)庫里。如果用戶輸入75個字符,那么他們就輸入了超出數(shù)據(jù)庫可以容納的字符,這樣以來誰都不能預(yù)測程序接下來的運行狀況。因此,用戶的輸入應(yīng)該這樣設(shè)計:在用戶輸入文本字符串時,先將該字符串的長度同最大允許長度進行比較,在字符串超過最大允許長度時能對其進行必要的攔截。
過濾掉潛在的惡意輸入
過濾是另一個很好的防御措施。先看下面例子中的ASP代碼:
這是從用戶的輸入中過濾掉HTML代碼,撇號和引號的代碼。
strNewString = Request.Form("Review")
strNewString = Replace(strNewString, "&", "& amp;")
strNewString = Replace(strNewString, "<", "& lt;")
strNewString = Replace(strNewString, ">", "& gt;")
strNewString = Replace(strNewString, "'", "`")
strNewString = Replace(strNewString, chr(34), "``")
上面的代碼用于目前我正在開發(fā)的電子商務(wù)網(wǎng)站中。這樣做的目的是為了過濾掉可能會導(dǎo)致數(shù)據(jù)庫出現(xiàn)問題的HTML代碼和符號。在HTML代碼中,使用"<"和">"的符號來命名一個HTML標(biāo)簽。為了防止用戶可能會在他們的輸入里嵌入HTML代碼,因此程序過濾掉了"<"和">"符號。
在ASP代碼中,撇號,引號和連字符都是保留符號。這些保留的符號不可以包括在用戶的輸入中,否則它們會導(dǎo)致應(yīng)用程序崩潰。例如,如果用戶輸入一個文本行中只使用了一個撇號,之后登陸數(shù)據(jù)庫時,這個命令將會失敗,因為ASP需要利用成對的撇號將文本括起來提交到數(shù)據(jù)庫里;ASP不知道如何處理用戶的輸入中的撇號。為了防止這種情況發(fā)生,以上的代碼可以尋找到輸入字符串中的撇號,并以“'“替代它。
測試應(yīng)用程序
為了保護程序免受緩沖區(qū)溢出的攻擊,驗證和過濾用戶的輸入已經(jīng)實施很久了。但在部署應(yīng)用程序之前,你仍然需要對它進行全面徹底的測試。應(yīng)當(dāng)有專門的人來仔細(xì)地審查應(yīng)用程序,并試圖使它們崩潰。讓他們嘗試輸入長的字符串或保留字符。如果你的應(yīng)用程序在編寫中已經(jīng)做了足夠的工作,它應(yīng)該能應(yīng)付各種各樣的情況。如果程序崩潰了,最好馬上把問題找出來,而不要等到已經(jīng)應(yīng)用之后。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
縱橫數(shù)據(jù)迎中秋國慶佳節(jié),雙節(jié)大禮包回饋客戶活動
>>>>>>>>>>點我免費在線咨詢<<<<<<<<<<
業(yè)務(wù)咨詢O、O、:289715452 / 756673127 / 519082853
服熱線電話:0592-5580195 / 189165134113
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
縱橫數(shù)據(jù)提供特價的香港服務(wù)器,美國服務(wù)器,每款限量100臺.
1.香港服務(wù)器感恩優(yōu)惠中
CPU:酷睿雙核E5200/G620T
內(nèi)存:2G 內(nèi)存
硬盤:80G/160G/250G硬盤
帶寬:3M獨享國際帶寬
默認(rèn)IP:5IP
費用: 750元/月
操作系統(tǒng):任選,無限制.
2.香港至強服務(wù)器特賣中
CPU:四核至強 E3-1220L V2
內(nèi)存:4G 內(nèi)存
硬盤:500G硬盤
帶寬:3M獨享國際帶寬
默認(rèn)IP:5IP
費用:
四核志強 1200月 4G內(nèi)存
四核志強 1300月 8G內(nèi)存
操作系統(tǒng):任選,無限制.
3.美國高端配置企業(yè)級服務(wù)器專用
CPU:E3-1230 V2 四核八線程志強
內(nèi)存:8G DDR2
硬盤:1x1TB HDD
帶寬:100M
超大流量,月流量:10*1000GB
默認(rèn)IP:5IP
費用:1399元/月
免費支持linux/centos/ubuntu/redhat
免費支持中文win2003(英文win2003/win2008系統(tǒng),價格另加!)
縱橫數(shù)據(jù)是頂級的海外服務(wù)器,海外主機,海外域名提供商;專業(yè)提供國外服務(wù)器,海外空間,海外云主機及香港服務(wù)器租用,美國服務(wù)器租用,臺灣服務(wù)器租用,馬來西亞服務(wù)器租用,韓國服務(wù)器租用,德國服務(wù)器,英國服務(wù)器,法國服務(wù)器等海外服務(wù)器租用托管,是海外互聯(lián)網(wǎng)業(yè)務(wù)和海外營銷解決方案領(lǐng)導(dǎo)者。