随着计算机应用的快速普及,很多企业和事业单位都有了自己的专用服务器。服务器是网络环境中为客户机提供各种服务的、特殊的计算机系统,在网络中具有非常重要的地位,服务器安全性显得尤为重要。
Web服务器安全漏洞
Web服务器上的漏洞可以从以下几方面考虑:
a.在Web服务器上你不让人访问的秘密文件、目录或重要数据。
b.从远程用户向服务器发送信息时。特别是信用卡之类东西时,中途遭不法分子非法拦截。
c.Web服务器本身存在一些漏洞,使得一些人能侵入到主机系统,破坏一些重要的数据,甚至造成系统瘫痪。
d.CGI安全方面的漏洞有:
(1)有意或无意在主机系统中遗漏Bugs给非法黑客创造条件。
(2)用CGI脚本编写的程序当涉及到远程用户从浏览器中输入表格(Form),并进行检索(Search index),或form-mail之类在主机上直接操作命令时,或许会给Web主机系统造成危险。
提高系统安全性和稳定性
a.限制在Web服务器开账户,定期删除一些断进程的用户。
b.对在Web服务器上开的账户,在口令长度及定期更改方面作出要求,防止被盗用。
c.尽量使FTP、MAIL等服务器与之分开,去掉ftp,sendmail,tftp,NIS,NFS,finger,netstat等一些无关的应用。
d.在Web服务器上去掉一些绝对不用的如SHELL之类的解释器,即当在你的CGI的程序中没用到PERL时。就尽量把PERL在系统解释器中删除掉。
e.定期查看服务器中的日志logs文件。分析一切可疑事件。在errorlog中出现rm,login,/bin/perl,/bin/sh等之类记录时,你的服务器可能已经受到了一些非法用户的入侵。
f.设置好Web服务器上系统文件的权限和属性,对可让人访问的文档分配一个公用的组,如www,并只分配它只读的权利。把所有的HTML文件归属WWW组,由Web管理员管理WWW组。对于Web的配置文件仅对Web管理员有写的权利。
g.有些Web服务器把Web的文档目录与FTP目录指在同一目录时,应该注意不要把FTP的目录与CGI-BIN指定在一个目录之下。这样是为了防止一些用户通过FTP上载一些如PERL或SH之类程序,并用Web的CGI-BIN去执行,造成不良后果。
从CGI编程角度考虑安全
1.采用编译语言比解释语言会更安全些。并且CGI程序应放在独立于HTML存放目录之外的CGI-BIN下,这是为了防止一些非法访问者从浏览器端取得解释性语言的原代码后从中寻找漏洞。
2.在用C来编写CGI程序时应尽量少用popen()、system()、所有涉及/bin/sh的SHELL命令以及在PERL中的system()、_exec()、open()、eval()等_exec或eval之类命令在由用户填写的form还回CGI时,不要直接调用system()之类函数。