以下都以ASP.NET開發網站為例。
1、sql注入漏洞。
解決辦法:使用預存程序,參數不要用字串拼接。簡單改進辦法:使用SqlHelper和OledbHelper
2、跨站指令碼漏洞
解決辦法:“預設禁止,顯式允許”的策略。具體參考:從用戶端檢測到有潛在危險的Request.Form值,禁止提交html標記(<>等被轉義成<)
3、上傳漏洞
解決辦法:禁止上傳目錄的運行許可權。只給讀取許可權。另外要禁止上傳非法類型檔案。不僅僅是aspx類型,包括很多,甚至htm、html類型檔案也不應該直接上傳儲存。
4、資料庫連接帳號,盡量使用最低許可權的帳號。一定不要給管理員權限。
假如被駭客得知了資料庫的密碼。
那我們就可以執行任意系統命令了。
例如:xp_cmdshell 'dir c:\'
另外還有
tasklist
taskkill
pslist
pskill
net user
net user guest /active:yes
net user hack hack /add
net user hack /del
net localgruop administrators hack /add
query user
logoff 1
這些命令是不是很恐怖?呵呵。所以一定不要給web資料庫連接帳號系統管理權限。
5、使用者登入。這裡不要把使用者標識明文儲存在cookie裡,以用來標識使用者是否登入。因為cookie是可以被修改的。請看這裡的修改cookie,冒充其他使用者。nc httpwatch使用視頻教程,用微軟的Forms表單身分識別驗證和角色一般情況都夠用了。
6、如果網站程式中用到讀寫檔案,一定要謹慎,因為讀取的操作很可能被駭客利用,例如用一個查看圖片的aspx檔案讀取web.config,用一個生產模板的功能產生木馬。
7、充分利用驗證碼。使用者登入、評論等等可能會被提交垃圾資訊的地方,都要使用驗證碼,而且要有一個安全的驗證碼。才能防止被暴力破解,防止網站充滿垃圾資料。
8、代碼要嚴謹,修改使用者資料、修改使用者資料都要跟使用者關聯起來,比如update news set title='新的標題' where id=新聞編號,這裡還要加一個限制:userid=使用者編號,這樣可以防止一個人修改別人的新聞。
9、關閉web.config中的錯誤顯示。<customErrors mode="RemoteOnly" defaultRedirect="404.aspx"></customErrors>
以上是程式方面的安全問題,想到哪裡就寫到哪裡。沒有系統的整理。
另外順便提提伺服器安全問題。
1、開啟windows防火牆,關閉不用的連接埠。這點是最重要的。就是說你提供的服務越少,你的伺服器就越安全。
2、設定安全的密碼。複雜度要達到一定強度。定期修改密碼。密碼不要泄露給別人,包括機房管理員。如果必要告訴機房人員,待機房人員用完密碼以後立刻改掉。
3、安裝ARP防火牆。機房裡ARP病毒非常多,如果中了ARP病毒,輕者瀏覽網站不正常,可能有木馬跟隨。嚴重的就整個網站、機房都斷網了。
4、適當的安裝殺毒軟體。(諾頓、麥咖啡等)
5、IIS關閉不用的服務,例如asp支援,關閉不用的服務:ftp,smtp,pop3等等,修改網站根目錄。設定目錄許可權。
6、針對各種攻擊,有不同的對策,例如cc攻擊。曾經遇到一次,深圳那邊有5台連續IP的機器對我的一個視頻站發動CC攻擊,導致網站開啟非常的慢,開始我們還不知道是被攻擊,以為程式有漏洞,不停的找程式的問題。後來通過伺服器安全管理軟體,查出是這些IP在作怪,通過站長屏蔽IP訪問的幾種方法中提到的“本地安全性原則”方法屏蔽掉這5個IP以後伺服器恢複正常,網站恢複了往日的速度。
常用命令:iisapp -a,netstat -nao,tasklist,telnet xxx.xxx.xxx.xxx 連接埠
7、遠端管理軟體不要用預設連接埠,雖然密碼被暴力破解和猜到的可能很小,但是總是有無聊的人嘗試。造成日誌裡一堆垃圾資訊。修改連接埠以後就沒有人嘗試破解密碼了。因為他跟不知道這個連接埠是做什麼的。談到這裡,我想起,不用的服務要關閉,那麼用的伺服器就要開啟嗎?那肯定是要啟動的,不啟動誰都用不了了,這裡可以做一個限制,比如我的smtp服務只提供本機使用,那麼我從防火牆裡把25連接埠關閉,如果我的SQL SERVER只是供本機使用的。那麼我也從防火牆裡吧1433連接埠關閉。這樣外部無法串連,自然也不存在暴力破解資料庫密碼了。windows防火牆還可以針對某一個IP開放某個連接埠。還是比較強大的。
以上亂七八糟的談了一堆,希望對站長和程式員們有所協助,大家可以加我QQ:4111852交流。我非常的歡迎。
最後說一下那個網友被掛馬的解決建議:
1、備份好資料庫、其他資料。
2、把所有程式、包括目錄全部刪除,以確保沒有檔案被留後門。
3、如果有可能,檢查伺服器安全,確保伺服器沒有被建立後門,例如超級帳號、安裝了後門木馬。這樣的話,你怎麼修改你的程式都沒用,人家隨時可以修改你的程式。
4、另一個網友提到的辦法,上傳一個靜態檔案test.html,訪問一下看看,是不是也有木馬以排除網路問題。
5、如果4中,確認不是網路問題,那就是檔案被掛馬了,全部程式刪除,上傳自己的安全的備份,恢複資料,檢查資料庫,確保木馬不在資料庫中。
6、查看IIS日誌,看誰登入過後台,參考:iis日誌分析視頻教程
思路特別亂,大家將就看一下吧