• λ我爱Aspx >> C#.Net >> PerlCGI程式写作常问问题集(4)安全_Perl教程
  • PerlCGI程式写作常问问题集(4)安全_Perl教程

  • :aspxer  Դ:internet  :2007-4-28 23:46:10  ؼ:
  • 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

    PaulPhillips所着,CGI安全FAQ

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

    Q5.3:为什麽大家都说

    http://bigidiot.abuse-me.com/perl.exe?foo.pl这样很危险?会有多糟?

    极度危险!想想看如果我这麽做会发生什麽事:

    http://bigidiot.abuse-me.com/cgi-bin/perl.exe?-e 'format: c'

    现在您同意了吧?避免这个恶梦发生的方法:

    将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,"`",位於键盘左上角)?这麽做:

    Ҷƪл˵?
  • һƪ集合类:VBA集合对象的安全包装_VisualBasic教程
    һƪ学习一下.net framework 中有关安全的内容_ASP.NET技巧