赛迪网 > IT技术 热点推荐 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

CGI和SSI的安全性

发布时间:2006.11.23 15:13     来源:赛迪网技术社区    作者:lynn

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

对于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程序。


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· FreeBSD基于DNS的负载均衡 (11-23) · 基于用户的访问控制 FreeBSD (11-23)
· 安全连接方式SSL FreeBSD (11-23) · FreeBSD平台下Web服务器架设攻略 (11-23)
· FreeBSD上使用Kerberos 5认证 (11-23) · FreeBSD5安装后的优化 (11-23)
· FreeBSD下利用ACI/SSL安全使用OpenLDAP (11-23) · FreeBSD中使用QUOTA(磁盘配额)来限制用户空间 (11-23)
· 使用FreeBSD建立安全的邮件系统 Sendmail (11-23) · 系统管理员安全 (11-23)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管