新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 网络学院 > 操作系统 > Unix系统 > FreeBSD教程 > 正文:FreeBSD连载89:CGI和SSI的安全性

FreeBSD连载89:CGI和SSI的安全性

新客网 XKER.COM 2008-01-17 来源:新客网编辑整理 王波 收藏本文

  【新客网FreeBSD教程】CGI和SSI的安全性

  答应根据用户的请求而在服务器上运行程序,本身就是一种安全漏洞,因此只有在必要时,才答应用户使用这些功能。

  对于SSI,安全问题比较简单,可以将其设置为只分析普通标志,不执行外部程序,这必须在配置文件中使用 Options IncludesNOEXEC选项,而非Options Includes选项。就能满足对安全性的一般要求。

  CGI程序的情况更为复杂。由于CGI可以用两种方式设置,一种为由ScriptAlias设置CGI程序的路径,另一种为通过设置CGI的后缀而设置的。通常只有在信任用户有能力创建没有(或很少)漏洞的CGI程序时,才使用后缀确认CGI程序。否则将会产生一些很糟糕的CGI程序,使得系统很轻易被攻击。因此将CGI程序限制在一些固定目录下的做法更为常见,这至少让一个CGI程序经过服务器治理员的一些检查,避免明显的漏洞。

  CGI程序的另一个问题是,假如CGI程序要保存浏览器客户发布的数据,那么它就要访问系统的文件系统。通常 Apache服务器使用User和Group配置服务器运行的用户和组属性,Apache服务器启动的CGI程序缺省也使用这个用户和组属性运行,也就拥有了这个用户和组的权限,可以存取文件系统中的数据,这就对系统安全造成另一个影响。然而又必须让CGI程序存取数据文件,因此就要适当调整User和Group的设置,使得它能够存取合适的数据文件。

  即使如此,由于所有的CGI程序都以同样的用户执行,那么不同用户的CGI就能相互操作别的用户的数据文件,从而造成安全问题。为了使得不同的用户以不同的用户身份执行CGI,就需要使用程序的SetUID功能。因为SetUID 会带来极大的系统漏洞问题。因此如非必要,不要使用SetUID程序,尤其是root身份的SetUID程序。设置用户身份的问题可以使用Apache的suEXEC能力来帮助完成,它首先将身份改变为合适的用户,再执行相应的CGI程序。

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐