第1页共2页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共2页CGI中的网络安全CGI的全称是CommonGatewayInterface,即通用网关接口,是外部程序和HTTP服务器进行信息交互的一种标准,当前的版本是CGI/1
由于它是实时执行的,所以它返回的信息也是动态的,它也是当前网络上应用最广的Web应用,它既可以使用C,Pascal等编译型语言,也可以使用Perl,PHP等解释型语言来
CGI是可执行的,也就是说是让别人在你的服务器上运行程序的,这当然不是很安全的
所以在使用CGI之前要做充分的安全准备工作
首先它们必须处于特定的目录(一般情况是/cgi-bin/),以便于服务器去执行它们而不是简单的返回给浏览器
这个目录应该直接置于管理员管理之下,用户编写的程序必须由管理员来设定
编译过的程序一般比解释执行的程序有更高的安全性,首先用户不可能取得你的源程序,尽管一个正确配置的服务器是不会返回源程序,但是泄漏源程序的可能总是存在的,一旦你的源程序被Hacker们所熟知,那么就越容易被人攻破
(例如,你用一个编辑器修改了程序,那么这个编辑器会留下一个备份,此时用户就可以通过http://server/*
cgi~来得到你的源程序),当然,在网上可以找到很多CGI的C的源程序,即便是编译过的程序也不一定是百分之百保险的
使用编译过的程序另外一个好处是,无论是PERL或者PHP或者别的解释器它们都是包含着很多Bug的,这些Bug无论我们知道或者不知道,它们都在那里
第三个好处就是解释性语言都是调用系统命令并返回值的,这样很容易给不怀好意者输入特定的字符串来攻击你的系统
但在C程序中,要想通过发送特定字符串来执行Shell命令几乎是不可能的
当然在C程序也存在着很多由于设计者原因所造成的可以被攻击的地点
新版本的解释器也往往修正了很多Bug