第四章 做几个试验:第三节、自己测试一下
到网络上下载一个searcher.cgi的搜索引擎源代码,然后放入httpd132fcgi-binsearcher目录下,之后通过浏览器访问http://127.0.0.1/cgi-bin/searcher/searcher.cgi就可以调用这个搜索引擎了,之后我们可以常规的在这个引擎中加入一些网站地址,然后一边浏览引擎页面一边观察httpd.log,很快读者就能够体会到网页浏览、CGI程序调用都是什么样的原理,这比我“纸上谈兵”要感性得多。然后我们来做一些特殊的操作吧。
通过浏览器进入“登陆网站”页面,然后再网站描述中输入文字“TEST”;之后再做同样的操作,并且在网站描述中输入“<font color=red>TEST</font>”,分别比较两次登陆的信息,会发现第二次的登陆信息是红色的,这是因为使用了HTML的元素<font>,同样利用这些HTML元素可以在输入信息内添加图片、大字体等内容,这样就严重的扰乱的这个搜索引擎的正常功能。
如何避免这种问题?这在第三章我也略微介绍过,在searcher.cgi中加入下面的判断语句:
if(($file_name=~/[^a-zA-Z_.]/)||($file_name=~/^./))
这样当以后操作者试图在$file_name变量中输入“<”、“’”等特殊符号的时候,会被程序判断并阻止信息的发送,这样就可以很好的解决Perl中可能出现的问题了。
但是作为Perl程序开发人员,简单的一两句话是很难全面的介绍各种可能出现的问题的,这就需要程序开发人员在程序运行的过程中严密监视系统日志,一旦发现了特殊的没有考虑到的黑客动作时,便要在最短的时间内将出现的问题进行修复。



