CGI執(zhí)行批處理文件的漏洞:
文件test.bat的內(nèi)容如下:
@echo off
echo Content-type: text/plain
echo
echo Hello World!
如果客戶瀏覽器的URL為:/cgi-bin/test.bat?&dir,則執(zhí)行調(diào)用命令解釋器完成DIR列表。這就讓訪問者有執(zhí)行其他命令可能性。
(2)O′Reilly WebSite server for Windows NT/95
在WebSite1.1B以前的版本中使用批處理文件存在著與Netscape同樣的漏洞,但是,新版關(guān)閉了.bat在CGI中的作用。支持PERL,新版將VB和C作為CGI開發(fā)工具。
(3)Microsoft′s IIS Web Server
1996年3月5日前的IIS在NT下的BUG嚴(yán)重,可以任意使用command命令。但之后已修補(bǔ)了該漏洞,你可檢查你的可執(zhí)行文件的建立日期。IIS3.0還存在一些安全BUG,主要是CGI-BIN下的覆給權(quán)利。另外,許多Web服務(wù)器本身都存在一些安全上的漏洞,都是在版本升級過程中被不斷更新了,在此就不一一列舉了。
三. 從CGI編程角度考慮安全
1.采用編譯語言比解釋語言會更安全些,并且CGI程序應(yīng)放在獨(dú)立于HTML存放目錄之外的CGI-BIN下,這是為了防止一些非法訪問者從瀏覽器端取得解釋性語言的原代碼后從中尋找漏洞。
2.在用C來編寫CGI程序時應(yīng)盡量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、exec()、open()、eval()等exec或eval之類命令。
在由用戶填寫的form還回CGI時,不要直接調(diào)用system()之類函數(shù)。
另外,對于數(shù)據(jù)的加密與傳輸,目前有SSL、SHTTP、SHEN等協(xié)議供大家研究。
四. 防火墻(Firewall)
1.防火墻的概念
防火墻(Firewall)是指一個由軟件或由軟件和硬件設(shè)備組合而成,處于企業(yè)或網(wǎng)絡(luò)群體計算機(jī)與外界通道(Internet)之間,限制外界用戶對內(nèi)部網(wǎng)絡(luò)的訪問及管理內(nèi)部用戶訪問外界網(wǎng)絡(luò)的權(quán)限。
2.防火墻的措施
(1)代理(Proxy)主機(jī)"內(nèi)部網(wǎng)絡(luò)--代理網(wǎng)關(guān)(Proxy Gateway)--Internet"
這種方式是內(nèi)部網(wǎng)絡(luò)與Internet不直接通訊。就是內(nèi)部網(wǎng)絡(luò)計算機(jī)用戶與代理網(wǎng)關(guān)采用一種通訊方式,即提供內(nèi)部網(wǎng)絡(luò)協(xié)議(Netbios、TCP/IP等),而網(wǎng)關(guān)與Internet之間采取的是標(biāo)準(zhǔn)TCP/IP網(wǎng)絡(luò)通訊協(xié)議。這樣使得網(wǎng)絡(luò)數(shù)據(jù)包不能直接在內(nèi)外網(wǎng)絡(luò)之間進(jìn)行。內(nèi)部計算機(jī)必須通過代理網(wǎng)關(guān)訪問Internet,這樣容易在代理服務(wù)器上對內(nèi)部網(wǎng)絡(luò)計算機(jī)訪問外界計算機(jī)進(jìn)行限制。另外,由于代理服務(wù)器兩端采用不同協(xié)議標(biāo)準(zhǔn)也可以直接阻止外界非法入侵。還有,代理服務(wù)器的網(wǎng)關(guān)可對數(shù)據(jù)封包進(jìn)行驗(yàn)證和對密碼進(jìn)行確認(rèn)等安全管制。這樣,能較好地控制管理兩端的用戶,起到防火墻作用。
因?yàn)檫@種防火墻措施是采用透過代理服務(wù)器進(jìn)行,在聯(lián)機(jī)用戶多時,效率必然受到影響,代理服務(wù)器負(fù)擔(dān)很重,所以許多訪問Internet的客戶軟件在內(nèi)部網(wǎng)絡(luò)計算機(jī)中可能無法正常訪問Internet。
(2)路由器加過濾器完成
"內(nèi)部網(wǎng)絡(luò)--過濾器(Filter)--路由器(Router)--Internet"
這種結(jié)構(gòu)由路由器和過濾器共同完成從IP地址或域名上對外界計算機(jī)訪問內(nèi)部網(wǎng)絡(luò)的限制,也可以指定或限制內(nèi)部網(wǎng)絡(luò)訪問Internet。路由器僅對主機(jī)上特定的PORT上的數(shù)據(jù)通訊加以路由,而過濾器則執(zhí)行篩選、過濾、驗(yàn)證及其安全監(jiān)控,這樣可以很大程度上隔斷內(nèi)外網(wǎng)絡(luò)間的不正常的訪問登錄。