一個網站,安全問題可能從多方面而來。光靠任何一方面,都不可能保證絕對的安全。一個安全的網站,必須要靠各方面配合才能打造出來。
首當其沖的是服務器的安全,服務器本身如果被人入侵了,你的網站系統再安全,那也沒有任何作用。 其次是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存在高危漏洞。縱橫科技 大家如果遇到掃描器報告有高危漏洞的,可以聯系我們開發人員確認。經過開發人員確認不存在,那就肯定不存在。即使掃描器報告說有,你也不用擔心。因為攻擊者是沒有辦法利用這個漏洞的。 除了SQL注入,還有一個更嚴重的安全問題:上傳木馬。 由于上傳組件(通常ASP開發者都使用一個或多個第三方開發的上傳組件或者ASP類)、站長的錯誤設置(允許上傳asp或者shtml等類型的文件),或者其它存在的上傳漏洞,都可能存在被攻擊者上傳后門的可能性。一旦上傳了漏洞,攻擊者就獲得了站長的權限,甚至超過站長的權限(對整個服務器構成安全威脅)。 這幾年來,包括動網、動力、動易在內的ASP系統,都曾經出現過上傳漏洞的問題(尤其是去年的upload.inc上傳.cer等類型文件的漏洞)。但是為什么每次發現這種大規模存在的漏洞之后,都只有一部分網站被黑呢?當然不是攻擊者手軟或者良心發現,而是一些網站通過服務器設置,防止了這些漏洞導致的損失。舉個例子,如下圖:給各個不必要的目錄,去掉“執行”權限,改為“無”,也就是這個目錄下的文件,只能讀取,不能運行。比如動網論壇除了根目錄以外,其它所有目錄都只給讀取權限即可,關閉執行權限;動易系統給動易根目錄、各個頻道的根目錄以及User、Reg這些含有ASP網頁并且ASP要從瀏覽器訪問的目錄執行權限即可,其它都可以設置為“無”。尤其是上傳目錄,比如UploadFiles這樣的目錄,還有圖片目錄,一定要設置為只讀。
新聞熱點
疑難解答