选择显示字体大小

freebsd连载(89):cgi和ssi的安全性

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

未完,待续。。。  

  


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons