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