cgi教学-cgi安全问题(六)--

cgi教学-cgi安全问题(六)--

ID:9677990

大小:50.50 KB

页数:3页

时间:2018-05-05

cgi教学-cgi安全问题(六)--_第1页
cgi教学-cgi安全问题(六)--_第2页
cgi教学-cgi安全问题(六)--_第3页
资源描述:

《cgi教学-cgi安全问题(六)--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、CGI教学:CGI安全问题(六)>>2.10处理外部进程 最后,CGI脚本如何与带有外部过程的用户输入打交道是应该警惕的另一区域。因为执行一个位于自己的CGI脚本之外的程序意味着无法控制它做什么,必须尽最大努力在执行开始前验证发送给它的输入。 例如,shell脚本经常错误地将一个命令行程序和表单输入合在一起执行。如果用户输入符合要求,一切都挺正常,但是有可能会加入其它命令并非法执行。 下面即是一个产生了这种错误的脚本的例子:FINGER_OUTPUT='finger$USER_INPUT'echo$FINGER_OUTPUT 如果用户很

2、礼貌地给finger输入了某人的e-mail地址,一切都会正常工作,但是如果他输入了一个e-mail地址,后面再跟一个分号和另一条命令,那么该命令也会被执行,如果用户输入了aster.server.;rm-rf/,那麻烦可就大了。 即使没有什么隐藏的命令被加入用户数据,无意的输入错误也可能带来麻烦。例如,下面的代码行会产生一个意料之外的结果——列出目录中的所有文件——如果用户输入是一个星号的话。echo"Yourinput:"$USER_INPUT 当通过shell发送用户数据时,就象前面的代码片段所做的那样,最好检查一下shell的m

3、eta-character(元字符)——这些可能会导致意外的行为。 这些字符包括分号(允许一行中有多条命令),星号和问号(完成文件匹配),感叹号(在csh下指运行的作业),单引号(执行一条包含其中的命令)等等。就像过滤文件名一样,维护一个允许的字符清单一般要比试图找出每个不允许的字符容易一些。下面的Pengerinformation:<HR><PRE>"finger"$USER_INPUTecho"</PRE> 尽管$USER_INPUT上的引号可以使shell不再解释一个分号,从而不允许黑客简单地插

4、进来一条命令,但该脚本仍有许多安全方面的漏洞。例如,输入可能是'rm-rf/',其中单引号可以导致甚至在finger不知道的情况下执行黑客的命令。 一种处理特殊字符的较好的办法是对它们进行换码,这样脚本只是取它们的ail读取机器的口令文件并发送给收信人(也许正是黑客自己)。在这样的例子中,应该使用sendmail(一个更底层的邮寄程序,它少了许多mail的特性),而不是使用mail在UNIX机器上发送e-mail。作为一般规则,在执行外部程序时应该使用尽可能贴近自己要求的程序,不必有过多不必要的功能。外部程序能干的事越少,它被利用来干坏

5、事的机会就越少。警告下面是使用mail和sendmail的另一个问题:必须保证发送给mail系统的是一个合法的e-mail地址。许多mail系统都会把以""开头的e-mail地址作为要执行的命令,从而为输入这样一个地址的黑客打开方便之门,请再一次记住要验证数据。怎样才能更好地了解外部程序以便有效地使用它们的另一个例子是grep。grep是一个简单的命令行实用程序,它在文件中搜索一个常用表达式,表达式可以是一个简单的串也可以是12下一页>>>>这篇文章来自..,。复杂的字符序列。大部分人会说使用grep不会出什么问题,但是尽管grep可能

6、不会造成什么损失,它却能被愚弄,下面将说明它是导致grep或者因等待将搜索的串输入标准输入而挂起,或者如果-i后的内容被解释为其他切换字符时产生错误。毫无疑问这不是编程者本来的意图。在这种情况下它还不太危险,但在其他情况下却有可能。记住,没有什么无害的命令,对每条命令部必须从各个角度仔细考虑。 一般情况下,应该尽可能熟悉自己的CGI脚本执行的每个外部程序。对程序知道得越多,就越能保护它们免受数据破坏--一方面可以监视数据,另一方面可以禁止某些选项或特性。外部程序经常是许多CGI程序问题的一种快速方便的解决办法——它们都经过了测试,可以得

7、到,并且灵活多样。但它们也可以成为黑客入侵的方便之门。不要害怕使用外部程序——它们经常是完成CGI程序中某种功能的唯一办法——但是要知道它们可能带来的危害。上一页12>>>>这篇文章来自..,。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。