關(guān)于網(wǎng)站的安全性注意事項(xiàng)
一個(gè)網(wǎng)站,安全問(wèn)題可能從多方面而來(lái)。光靠任何一方面,都不可能保證絕對(duì)的安全。一個(gè)安全的網(wǎng)站,必須要靠各方面配合才能打造出來(lái)。
首當(dāng)其沖的是服務(wù)器的安全,服務(wù)器本身如果被人入侵了,你的網(wǎng)站系統(tǒng)再安全,那也沒(méi)有任何作用。
其次是FTP或者遠(yuǎn)程管理等的帳號(hào)安全,如果人家破解了你的FTP或者遠(yuǎn)程管理權(quán)限,那也就等于窗戶開(kāi)給人家怕,那家里的東西自然是隨便拿了。
上述的涉及系統(tǒng)管理的問(wèn)題,這里不多說(shuō)了,重點(diǎn)說(shuō)說(shuō)第三方面:腳本安全??v橫
腳本指在你的網(wǎng)站上的ASP,JSP,CGI等服務(wù)器端運(yùn)行的腳本代碼,比如動(dòng)易系統(tǒng)、動(dòng)網(wǎng)論壇都屬此類。
腳本代碼的安全問(wèn)題最主要最集中的問(wèn)題出在兩個(gè)方面:SQL注入和FSO權(quán)限。
互動(dòng)網(wǎng)站大多有數(shù)據(jù)庫(kù),ASP代碼通過(guò)SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理,而SQL語(yǔ)句中的一些變量是通過(guò)用戶提交的表單獲取,如果對(duì)表單提交的數(shù)據(jù)沒(méi)有做好過(guò)濾,攻擊者就可以通過(guò)構(gòu)造一些特殊的URL提交給你的系統(tǒng),或者在表單中提交特別構(gòu)造的字符串,造成SQL語(yǔ)句沒(méi)有按預(yù)期的目的執(zhí)行。
經(jīng)常有網(wǎng)友在動(dòng)易論壇提交一些掃描報(bào)告,說(shuō)動(dòng)易有SQL注入漏洞。像動(dòng)易這么復(fù)雜的系統(tǒng),我們不能說(shuō)開(kāi)發(fā)人員不會(huì)遺漏了一兩個(gè)表單數(shù)據(jù)的檢驗(yàn)和過(guò)濾,如果的確存在這種疏忽,而攻擊者又通過(guò)源代碼看到了,那么肯定網(wǎng)站是抵御不了這樣的攻擊的。在早期的動(dòng)力系統(tǒng)中,曾經(jīng)有過(guò)這樣的漏洞。
到了動(dòng)易的新版本,開(kāi)發(fā)團(tuán)隊(duì)在防止SQL注入方面下了很大的工夫,幾乎所有通過(guò)表單提交的數(shù)據(jù),分字符性和數(shù)字性,分別用一個(gè)專門(mén)的函數(shù)進(jìn)行處理。只要是提交的數(shù)據(jù)包含非法字符,或者被替換為安全字符,或者提交的數(shù)據(jù)被替換為默認(rèn)值。為了程序具有較好的容錯(cuò)性,我們并沒(méi)有對(duì)所有含有非法字符串的數(shù)據(jù)提交都以抱錯(cuò)回應(yīng)。比如當(dāng)用戶訪問(wèn)ShowSource.asp這個(gè)網(wǎng)頁(yè),提交ChannelID=%3D這樣的數(shù)據(jù),系統(tǒng)就會(huì)將其修改為ChannelID=0,這是安全的數(shù)據(jù),但是不會(huì)顯示“您所提交的數(shù)據(jù)非法”這樣的提示。因?yàn)閷?duì)于訪問(wèn)者而言,這是沒(méi)有必要的。
也就是因?yàn)檫@樣的原因,一些比較弱智的漏洞掃描器就以為提交的ChannelID=%3D被執(zhí)行了,于是告訴用戶ShowSource.asp?ChannelID=%3D存在高危漏洞??v橫科技
大家如果遇到掃描器報(bào)告有高危漏洞的,可以聯(lián)系我們開(kāi)發(fā)人員確認(rèn)。經(jīng)過(guò)開(kāi)發(fā)人員確認(rèn)不存在,那就肯定不存在。即使掃描器報(bào)告說(shuō)有,你也不用擔(dān)心。因?yàn)楣粽呤菦](méi)有辦法利用這個(gè)漏洞的。
除了SQL注入,還有一個(gè)更嚴(yán)重的安全問(wèn)題:上傳木馬。
由于上傳組件(通常ASP開(kāi)發(fā)者都使用一個(gè)或多個(gè)第三方開(kāi)發(fā)的上傳組件或者ASP類)、站長(zhǎng)的錯(cuò)誤設(shè)置(允許上傳asp或者shtml等類型的文件),或者其它存在的上傳漏洞,都可能存在被攻擊者上傳后門(mén)的可能性。一旦上傳了漏洞,攻擊者就獲得了站長(zhǎng)的權(quán)限,甚至超過(guò)站長(zhǎng)的權(quán)限(對(duì)整個(gè)服務(wù)器構(gòu)成安全威脅)。
這幾年來(lái),包括動(dòng)網(wǎng)、動(dòng)力、動(dòng)易在內(nèi)的ASP系統(tǒng),都曾經(jīng)出現(xiàn)過(guò)上傳漏洞的問(wèn)題(尤其是去年的upload.inc上傳.cer等類型文件的漏洞)。但是為什么每次發(fā)現(xiàn)這種大規(guī)模存在的漏洞之后,都只有一部分網(wǎng)站被黑呢?當(dāng)然不是攻擊者手軟或者良心發(fā)現(xiàn),而是一些網(wǎng)站通過(guò)服務(wù)器設(shè)置,防止了這些漏洞導(dǎo)致的損失。舉個(gè)例子,如下圖:
給各個(gè)不必要的目錄,去掉“執(zhí)行”權(quán)限,改為“無(wú)”,也就是這個(gè)目錄下的文件,只能讀取,不能運(yùn)行。比如動(dòng)網(wǎng)論壇除了根目錄以外,其它所有目錄都只給讀取權(quán)限即可,關(guān)閉執(zhí)行權(quán)限;動(dòng)易系統(tǒng)給動(dòng)易根目錄、各個(gè)頻道的根目錄以及User、Reg這些含有ASP網(wǎng)頁(yè)并且ASP要從瀏覽器訪問(wèn)的目錄執(zhí)行權(quán)限即可,其它都可以設(shè)置為“無(wú)”。尤其是上傳目錄,比如UploadFiles這樣的目錄,還有圖片目錄,一定要設(shè)置為只讀。
這樣設(shè)置以后,即使攻擊者找到了上傳漏洞,把a(bǔ)sp木馬上傳到了你的UploadFiles目錄,他也不能利用那個(gè)木馬做什么。
另外,如果你的服務(wù)器采用NTFS文件系統(tǒng),那么給網(wǎng)站文件所在的目錄設(shè)置好權(quán)限也很重要,網(wǎng)站所在目錄,只要給IUSR_你的機(jī)器名這個(gè)用戶開(kāi)放了讀、寫(xiě)權(quán)限就能正常運(yùn)行。不要給EveryOne\Guest這樣的用戶賦予完全權(quán)限,非Web目錄,應(yīng)該禁止IUSR_機(jī)器名這樣的用戶賦予權(quán)限,這樣可以避免上傳的ASP木馬給服務(wù)器造成嚴(yán)重的安全問(wèn)題。
另外,在IIS的運(yùn)用程序配置中,刪除不需要的程序映射,也是避免因?yàn)檫^(guò)濾不夠被攻擊者上傳了某些特殊類型的木馬進(jìn)行攻擊的辦法。如下圖:
相關(guān)文章
mysql實(shí)現(xiàn)自動(dòng)遠(yuǎn)程備份一辦法
mysql實(shí)現(xiàn)自動(dòng)遠(yuǎn)程備份一辦法...2007-05-05使用Cacls命令設(shè)置服務(wù)器文件訪問(wèn)權(quán)限
使用Cacls命令設(shè)置服務(wù)器文件訪問(wèn)權(quán)限...2007-01-01