📄 00000003.htm
字号:
Q4.8: 人家看得到我的 Perl CGI <BR>程式吗?如果是这样的话,那不就让他们知道 <BR> 我的程式是怎麽运作的了。这是个安全漏洞吗?我要怎麽把它隐藏起来? <BR>Q4.9: 我需要将整个 Perl library 都复制到我的 htdocs 目录底下吗? <BR>Q4.10: <BR>我为什麽不该叫使用者输入他们的密码或身份证字号或信用卡号码?有一 <BR> 个 TYPE="password" 不是就是拿来做这个的吗? <BR>Q4.11: 我要如何产生专门替 Netscape <BR>设计的网页,以别於世上其他的浏览器? <BR>Q4.12: 为什麽我的 system() 所产生的资料输出顺序不对? <BR>Q4.13: 我听说 Netscape 会支援 Java。这是不是说我现在得弃 Perl,改Java <BR> 了?是不是该这麽做? <BR>Q4.14: 我要如何读取环境变数?为什麽它们有时候会不一样? <BR>Q4.15: 为什麽我输出的资料被搅乱了(如 ``b < a'' 会被破坏掉)? <BR>Q4.16: 为什麽我的Perl CGI 程式可以由指令列,却无法从浏览器去执行? <BR>Q4.17: 为什麽我的 Perl CGI 程式能跑,但是不会把资料写到档案中? <BR>Q4.18: 要如何做一个会维系状态,或允许【同一使用者】多次连线的 form? <BR>Q4.19: 如果不从浏览器去执行我的 CGI 程式,要如何替它除错? <BR>Q4.20: 如果不靠<FORM>标签,要如何叫出 Perl CGI 程式? <BR>Q4.21: 要如何避免旁人不先填栏位就执行我的 form?他们为什麽一直不断这麽 <BR> 做? <BR>Q4.22: 那些 server 回应码 (server response codes) <BR>是干什麽用的?有什麽意 <BR> 义? <BR>Q4.23: 为什麽 print "Location: <A HREF="http://host/page.html\n"">http://host/page.html\n"</A> 不 <BR>work?又为什 <BR> 麽它只 work 一次,但随後的转向就都弄错了呢? <BR>Q4.24: 要如何让 server 在每个 HTML <BR>网页的底部都自动加上一个:「最近更新 <BR> 日期: ...」的告示?或者,是不是只有 SSI 的网页才能这麽做?CGI 程 <BR> 式的日期要如何取得? <BR>Q4.25: 什麽样的场合下以 Perl 写 CGI 程式会显得太小题大作,因为用 shell <BR> 就可以做到?而什麽样的场合对 Perl 来说又过於困难?用 C++ 做这类的 <BR> 事不是好得多吗?那用 C 呢? <BR> <BR>5.0 -安全 <BR> <BR>Q5.1: 以 Perl 写成的 CGI 程式是不是不如以 shell 或 C 写的来得安全? <BR>Q5.2: 我该特别留意哪些安全事项? <BR>Q5.3: 为什麽大家都说 <A HREF="http://bigidiot.abuse-me.com/perl.exe?foo.pl">http://bigidiot.abuse-me.com/perl.exe?foo.pl</A> <BR>这样 <BR> 很危险?会有多糟? <BR>Q5.4: 要如何在程式中安全地使用逆向撇号(backticks,"`")?这麽做: <BR> @ans = `grep'$user_field' some.file`; 是不是真的不安全? <BR>Q5.5: /$user_variable/ 这个句法是不是 Perl 5 中的一个安全漏洞? <BR> <BR> <BR>--------------------------------------------------------------------------- <BR> <BR>1.0 -入门简介 <BR> <BR>--------------------------------------------------------------------------- <BR> <BR>Q1.1: 为什麽我的 HTML page/form 需要用 script? <BR> <BR>因为有的时候您需要在 HTML <BR>文件中使用动态资料(非固定不变的资料)。这包括了 <BR>日期和时间这类的简单资料,或是一个显示「您是第 xxx <BR>位访客」的计数器。但它 <BR>也可能包括根据使用者输入而得出的大饼图/条统图、资料库搜寻产生的结果,或动 <BR>画等这类的东西。要做出像这样的东西,您唯一的方法是使用 CGI scripts <BR>(尽管您 <BR>也可以应用客户端程式,如 Java 和 JavaScript <BR>来达到这个目的,不过那又是完全 <BR>不同的一回事!)。 <BR> <BR>--------------------------------------------------------------------------- <BR> <BR>Q1.2: CGI 各代表什麽? <BR> <BR>以下是我的编辑* Andy Oram (<<A HREF="http://jasper.ora.com/andyo>)">http://jasper.ora.com/andyo>)</A> 和 Linda Mui <BR>(<<A HREF="http://pcnt1.ora.com>)">http://pcnt1.ora.com>)</A> (他们很棒!)所写的一段非常好的描述: <BR> <BR> 【译者】这是原文的第一作者 Shishir G. 指他所写的 CGI Programming <BR> on the World Wide Web (<<A HREF="http://www.ora.com/info/cgi/>)">http://www.ora.com/info/cgi/>)</A> 一书的编 <BR> 辑。 <BR> <BR> Common 向您确保 CGI 可以使用多种程式语言并和多种 <BR> 不同的系统互动。它让您自由选择达到目的的方 <BR> 法,不把您绑死在单独一种作法之下*。 <BR> Gateway 提示您 CGI 的力量不在於它本身所做的事,而 <BR> 在於它提供了连结其他系统的潜力,例如资料库 <BR> 和图形制造器。 <BR> Interface 只是表示 CGI 对如何善用其特性提供了明确的 <BR> 界定-换句话说,您可以设计程式来适当利用这 <BR> 个介面。 <BR> <BR> 【译者】似乎有影射 Java 之意。 <BR> <BR>--------------------------------------------------------------------------- <BR> <BR>Q1.3: 到底什麽叫 script?我能拿它来能做什麽? <BR> <BR>简单的说,script <BR>就是程式!好吧、好吧,应该说二者有语意上的差别。如果您真 <BR>的想知道,那麽去买一本电脑程式设计的书来看(或许该说 script 设计 :-) <BR>)。 <BR> <BR>您可以藉著写 CGI 程式/script <BR>变很多魔术。您可以即时制作图形、连结资料库传 <BR>回【查询】结果,还可以连到 Internet 上其他的 servers 去。 <BR> <BR>--------------------------------------------------------------------------- <BR> <BR>Q1.4: 什麽是 Perl?为什麽有那麽多人用它来做 CGI? <BR> <BR>答案就在 perl manpage 中的前三行叙述: <BR> <BR> Perl 是一解译式的语言,专为高效率检视文字档案、从中抽取资料,据 <BR> 以印制报表而设计。 <BR> <BR>绝大多数 CGI <BR>应用程式的任务都涉及对资料作某种程度的处理,及连结外在程式。 <BR>Perl 恰好提供了好用的工具,让人轻松愉快地达成这些任务。 <BR> <BR>--------------------------------------------------------------------------- <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -