CGI教學(xué):CGI安全問(wèn)題(8)
發(fā)表時(shí)間:2023-12-26 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]4 使用他人CGI腳本時(shí)的注意事項(xiàng) 關(guān)于CGI,可以從很多地方獲得信息——從Internet上,從學(xué)校圖書館中,從像本書這樣的書中,UseNet組中以及朋友和同事中。從這些地方不僅可以獲得信息,還可以得到實(shí)際的程序和庫(kù)。有些程序和庫(kù)如果已經(jīng)有人做過(guò)了為什么自己還要從頭再做一遍呢?但就像不能盲目聽從...
4 使用他人CGI腳本時(shí)的注意事項(xiàng)
關(guān)于CGI,可以從很多地方獲得信息——從Internet上,從學(xué)校圖書館中,從像本書這樣的書中,UseNet組中以及朋友和同事中。從這些地方不僅可以獲得信息,還可以得到實(shí)際的程序和庫(kù)。有些程序和庫(kù)如果已經(jīng)有人做過(guò)了為什么自己還要從頭再做一遍呢?但就像不能盲目聽從別人的意見一樣,關(guān)于如何理財(cái),如何駕車或者生活中的別的方面,同樣,也不能在自己的服務(wù)器上盲目地運(yùn)行另從的代碼。從Net上得到的腳本也可能真正是很好的腳本。但也許并不是;ㄐ⿻r(shí)間考察一下腳本的來(lái)源以及獲取它的站點(diǎn)的可靠性是值得的。
4.1 追根求源
某些Web擁有者。如果不能看到并研究源代碼的話,他們甚至都不會(huì)運(yùn)行一個(gè)公共的、免費(fèi)的或商業(yè)性的腳本。這可能有點(diǎn)偏激。如果某個(gè)聲譽(yù)很好的公司銷售一個(gè)文檔詳細(xì)且廣為使用的腳本,該腳本應(yīng)該比自己寫的腳本更安全一些。原因有二。首先,專業(yè)人才知道并能避免一些常見的安全漏洞;其次,公司是為了嫌錢而做生意,如果他們以次充好或銷售那些惡意的產(chǎn)品就不能再做生意賺錢了。
從另一方面來(lái)看,如果UseNet組中看到一個(gè)編譯好的可執(zhí)行文件出自一個(gè)從沒聽說(shuō)過(guò)的人,沒有什么文檔可以看,也沒有該程序的用戶可以交流交流,那么在將它放入自己的服務(wù)器之前一定要仔細(xì)考慮。也有可能這是來(lái)自一個(gè)像自己一樣的另一個(gè)CGI編程者的完全合法的貢獻(xiàn),目的是想讓全世界共享他的編程成果。但它也可能來(lái)自某個(gè)惡意的,具有變態(tài)幽默感的,只想看到自己能使多少人清盤的人。
在評(píng)價(jià)公共的免費(fèi)軟件或商業(yè)性軟件時(shí),應(yīng)考慮下面這些方面:
該腳本來(lái)自一個(gè)聲譽(yù)好的站點(diǎn)嗎?該站點(diǎn)存在很長(zhǎng)一段時(shí)間了嗎?它維護(hù)得好嗎?Web擁有者在發(fā)布文件前進(jìn)行檢查嗎?
有沒有足夠的文檔說(shuō)明該程序如何工作以及用戶如何使用等信息?
有多少人已經(jīng)下載了該腳本?該站點(diǎn)愿意提供顧客名單嗎?(僅在有疑問(wèn)時(shí)才去詢問(wèn);Web擁有者不會(huì)整天去回答這類問(wèn)題。)
有人在UseNet上討論該腳本嗎?如果有,他們說(shuō)好還是不好?如果沒人提到該腳本可以進(jìn)一步請(qǐng)求別人的見解。一般總會(huì)有人響應(yīng)的。
提示
在評(píng)價(jià)腳本時(shí)檢查下面這些useNet組: comp.security.announce,comp.securiy.unix,以及comp.infosystem.www.authority.cgi。另外還可以訪問(wèn)位于ftp.cert.org的Computer
Emergency Response Team,以了解安全問(wèn)題的歷史及有關(guān)工作以及安全保護(hù)的軟件。
5)該腳本的作者有沒有一些別的好名聲的腳本?
6)源代碼能得到嗎?免費(fèi)的或有價(jià)的都行。
7)該程序是不是過(guò)份宣傳它的能力?如果是,這可能是一個(gè)編程新手。
8)該站點(diǎn)自己運(yùn)了該腳本嗎?如果沒有,為什么?能找到別的站點(diǎn)運(yùn)行該腳本嗎?過(guò)分偏激以及時(shí)間限制
盡管游覽取自Web的所有代碼是個(gè)好主意,但要花費(fèi)很多時(shí)間,特別是當(dāng)代碼比較復(fù)雜時(shí)更是如此。
例如,NCSA HTTPd就太大了,一般用戶不可能一行行去讀,但是從它的主站點(diǎn)http://www.ncsa.uiuc.edu下載它卻能保證極好的完整性,滿足任何用戶的需要。實(shí)際上,任何從NCSA下載的東西都是有保障的。
實(shí)際上,Web上的許多著名的站點(diǎn)已經(jīng)為用戶做了大部分的幾乎偏激的代碼檢查工作。從它閃中下載代碼是可能利用的另一層另一層保護(hù)。這些站點(diǎn)包括:
ftp://ftp.ncsa.uiuc.edu/Web/httpd/Unix/ncsa_httpd/cgi(the NCSA Archive)
http://www.novia.net/~geewhiz(Virtual Webwerx Division Zero-CGI Land)
http://www.lpage.com/cgi(the World-Famous Guestbook Server)
http://sweetbay.will.uiuc.edu/cgi++(cgi++)
http://www.aee.com/wdw(the Web Developers Warehouse)
4.2 注意禮貌
最后,如果確實(shí)希望從Web上下載一些CGI代碼,或者完整地使用它,或者用作自己編寫的更大程序的一部分,還應(yīng)了解一些事情。
代碼是兔費(fèi)的并不意味著可以自由地用它作自己想做的任何事情。通常程序和庫(kù)是禁止拷貝的,如果原始作者沒有放棄這個(gè)權(quán)力,他即能限制如何使用該程序。例如,作者可能禁止拆散該腳本,及禁止用作別的腳本的一部分。
一跟來(lái)說(shuō),在使用別人的代碼之前(即使已經(jīng)確定它是安全的),最好與作者進(jìn)行聯(lián)系取得許可。至少這樣做比較有禮貌。而大部分情況下,作者會(huì)很高興他的代碼能被別人利用。當(dāng)然,如果在自己程序某個(gè)片段處注明原始作者將是很禮貌的。