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