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