国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

PerlCGI程式寫作常問問題集(4)安全

2019-11-18 17:23:31
字體:
來源:轉載
供稿:網友

5.0-安全

--------------------------------------------------------------------------------

Q5.1:以Perl寫成的CGI程式是不是不如以shell或C寫的來得安全?
這個問題的答案是:CGI程式先天上就不安全,不管它是用那個語言寫成的*。

【譯者】WWW及
CGI操作安全FAQ中問題第31對此有深入的探討。



--------------------------------------------------------------------------------

Q5.2:我該特別留意哪些安全事項?
絕對不要對shell暴露任何form資料。底下這幾項通通都是安全漏洞:

open(COMMAND,"/usr/ucb/finger$form_user");
system("/usr/ucb/finger$form_user");
@data=`usr/ucb/finger$form_user`;
話雖如此,在上面的第二種寫法中,系統安全可藉著改變參數傳送的方式而得以改善。也就是將參數由字串方式傳送(shell會先解譯),改為序列方式傳送。

system("/usr/ucb/finger",$form_user);
您同時應該閱讀:

由LincolnStein所著,一份很完整的WWW及CGI操作安全FAQ
PaulPhill

現在您同意了吧?避免這個惡夢發生的方法:

將perl.exe執行檔由``cgi-bin''移到server根目錄以外的目錄里去。
在``cgi-bin''里用批次檔(batch)script來叫出您的CGIscript。
以下是一例。假設您的CGIscript叫做``sample.pl''而您的批次檔叫``simple.bat'':

@echooff
c:/dos_perl/perl.exec:/netscape/ns-home/docs/cgi-bin/simple.pl

現在,您可以做:

ClickHere



--------------------------------------------------------------------------------

Q5.4:要如何在程式中安全地使用逆向撇號(backticks,"`",位於鍵盤左上角)?這麼做:
@ans=`grep'$user_field'some.file`;
是不是真的不安全?
是的!這非常危險!試想,如果$user_field含有這樣的內容會有什麼後果:

;rm-fr/;

要達到相同的效果,一個比較安全的做法是*:

if(openGREP,"-|"){
@ans=;
}else{
exec("/usr/local/bin/grep",$user_field,"some.file")
||die"Errorexec'ingcommand","/n";
}

closeGREP;

【譯者】如果讀者對以上openGREP,"-|"部份的句法有疑問,可以
參閱perlipcmanpages中SafePipeOpens一節的說明。



--------------------------------------------------------------------------------

Q5.5:/$user_variable/這個句法是不是Perl5中的一個安全漏洞?
不!這不是個安全漏洞。但是如果您用eval指令在執行期(runtime)去評估這個敘述,那麼,它會變成一個安全死角。例如這種做法可能很危險:

foreach$regexp(@all_regexps){
eval"foreach(/@data){push(/@matches,/$_)ifm|$regexp|o;}";
}


--------------------------------------------------------------------------------
版權事宜

--------------------------------------------------------------------------------

Thisdocument,andallitsparts,areCopyright(c)1996,Shishir
GundavaramandTomChristiansen.Allrightsreservered.
Permissontodistributethiscollection,inpartorfull,viaelectronic
means(emailed,postedorarchived)orPRintedcopyaregrantedproviding
thatnochargesareinvolved,reasonableattemptismadetousethemost
currentversion,andallcreditsandcopyrightnoticesareretained.
Requestsforotherdistributionrights,includingincorporationin
commercialproducts,suchasbooks,magazinearticles,orCD-ROMsshouldbe
madetoeitheroftheauthors.

本文件著作權屬於ShishirGundavaram及TomChristiansen所有,Copyright(C)1996。在不涉及收費營利、盡可能地使用最新版,及所有著作權告示保持完整的情況下,作者允許任何人透過電子形式(電子郵件、討論群布告,或存放),或印表方式對本文件作完整或部份發行。如欲將本文件作其他方式發行,包括將本文件附加於商業產品,諸如書籍、雜志文章,或光碟等之中,必須事先對二位作者其中一人提出請求,以徵得許可授權。

本中譯版及譯者補充部份著作權屬蕭百齡及兩只老虎工作室所有,Copyright(C)1997。本中譯版遵守并使用與上述原文版相同的使用條款發行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 樟树市| 曲阜市| 临高县| 共和县| 五寨县| 柞水县| 奉节县| 商丘市| 东丰县| 巧家县| 五华县| 牙克石市| 色达县| 丰原市| 东至县| 邵东县| 滕州市| 喀喇沁旗| 漳平市| 东台市| 响水县| 昌都县| 潮安县| 陵川县| 延川县| 长岛县| 洪泽县| 平阴县| 贵港市| 元氏县| 开封市| 武胜县| 兰州市| 新兴县| 仙游县| 厦门市| 汝州市| 巨鹿县| 镶黄旗| 育儿| 齐齐哈尔市|