隨著計(jì)算機(jī)應(yīng)用的快速普及,很多企業(yè)和事業(yè)單位都有了自己的專用服務(wù)器。服務(wù)器是網(wǎng)絡(luò)環(huán)境中為客戶機(jī)提供各種服務(wù)的、特殊的計(jì)算機(jī)系統(tǒng),在網(wǎng)絡(luò)中具有非常重要的地位,服務(wù)器安全性顯得尤為重要。
Web服務(wù)器安全漏洞
Web服務(wù)器上的漏洞可以從以下幾方面考慮:
a.在Web服務(wù)器上你不讓人訪問(wèn)的秘密文件、目錄或重要數(shù)據(jù)。
b.從遠(yuǎn)程用戶向服務(wù)器發(fā)送信息時(shí)。特別是信用卡之類東西時(shí),中途遭不法分子非法攔截。
c.Web服務(wù)器本身存在一些漏洞,使得一些人能侵入到主機(jī)系統(tǒng),破壞一些重要的數(shù)據(jù),甚至造成系統(tǒng)癱瘓。
d.CGI安全方面的漏洞有:
(1)有意或無(wú)意在主機(jī)系統(tǒng)中遺漏Bugs給非法黑客創(chuàng)造條件。
(2)用CGI腳本編寫的程序當(dāng)涉及到遠(yuǎn)程用戶從瀏覽器中輸入表格(Form),并進(jìn)行檢索(Search index),或form-mail之類在主機(jī)上直接操作命令時(shí),或許會(huì)給Web主機(jī)系統(tǒng)造成危險(xiǎn)。
提高系統(tǒng)安全性和穩(wěn)定性
a.限制在Web服務(wù)器開賬戶,定期刪除一些斷進(jìn)程的用戶。
b.對(duì)在Web服務(wù)器上開的賬戶,在口令長(zhǎng)度及定期更改方面作出要求,防止被盜用。
c.盡量使FTP、MAIL等服務(wù)器與之分開,去掉ftp,sendmail,tftp,NIS,NFS,finger,netstat等一些無(wú)關(guān)的應(yīng)用。
d.在Web服務(wù)器上去掉一些絕對(duì)不用的如SHELL之類的解釋器,即當(dāng)在你的CGI的程序中沒用到PERL時(shí)。就盡量把PERL在系統(tǒng)解釋器中刪除掉。
e.定期查看服務(wù)器中的日志logs文件。分析一切可疑事件。在errorlog中出現(xiàn)rm,login,/bin/perl,/bin/sh等之類記錄時(shí),你的服務(wù)器可能已經(jīng)受到了一些非法用戶的入侵。
f.設(shè)置好Web服務(wù)器上系統(tǒng)文件的權(quán)限和屬性,對(duì)可讓人訪問(wèn)的文檔分配一個(gè)公用的組,如www,并只分配它只讀的權(quán)利。把所有的HTML文件歸屬WWW組,由Web管理員管理WWW組。對(duì)于Web的配置文件僅對(duì)Web管理員有寫的權(quán)利。
g.有些Web服務(wù)器把Web的文檔目錄與FTP目錄指在同一目錄時(shí),應(yīng)該注意不要把FTP的目錄與CGI-BIN指定在一個(gè)目錄之下。這樣是為了防止一些用戶通過(guò)FTP上載一些如PERL或SH之類程序,并用Web的CGI-BIN去執(zhí)行,造成不良后果。
從CGI編程角度考慮安全
1.采用編譯語(yǔ)言比解釋語(yǔ)言會(huì)更安全些。并且CGI程序應(yīng)放在獨(dú)立于HTML存放目錄之外的CGI-BIN下,這是為了防止一些非法訪問(wèn)者從瀏覽器端取得解釋性語(yǔ)言的原代碼后從中尋找漏洞。
2.在用C來(lái)編寫CGI程序時(shí)應(yīng)盡量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、_exec()、open()、eval()等_exec或eval之類命令在由用戶填寫的form還回CGI時(shí),不要直接調(diào)用system()之類函數(shù)。