摘 要 文章对Web的安全威胁进行分析,提出了Web安全防护措施,并基于Windows平台简述了一个Web安全防护策略的具体应用。
关键词 Web;网络安全;安全威胁;安全防护
1 引言
随着Internet的普及,人们对其依赖也越来越强,但是由于Internet的开放性,及在设计时对于信息的保密和系统的安全考虑不完备,造成现在网络的攻击与破坏事件层出不穷,给人们的日常生活和经济活动造成了很大麻烦。WWW服务作为现今Internet上使用的最广泛的服务,Web站点被黑客入侵的事件屡有发生,Web安全问题已引起人们的极大重视。
2 Web的安全威胁
来自网络上的安全威胁与攻击多种多样,依照Web访问的结构,可将其分类为对Web服务器的安全威胁、对Web客户机的安全威胁和对通信信道的安全威胁三类。
2.1对Web服务器的安全威胁
对于Web服务器、服务器的操作系统、数据库服务器都有可能存在漏洞,恶意用户都有可能利用这些漏洞去获得重要信息。Web服务器上的漏洞可以从以下几方面考虑:
2.1.1在Web服务器上的机密文件或重要数据(如存放用户名、口令的文件)放置在不安全区域,被入侵后很容易得到。
2.1.2在Web数据库中,保存的有价值信息(如商业机密数据、用户信息等),如果数据库安全配置不当,很容易泄密。
2.1.3Web服务器本身存在一些漏洞,能被黑客利用侵入到系统,破坏一些重要的数据,甚至造成系统瘫痪。
2.1.4程序员的有意或无意在系统中遗漏Bugs给非法黑客创造条件。用CGI脚本编写的程序中的自身漏洞。
2.2对Web客户机的安全威胁
现在网页中的活动内容已被广泛应用,活动内容的不安全性是造成客户端的主要威胁。网页的活动内容是指在静态网页中嵌入的对用户透明的程序,它可以完成一些动作,显示动态图像、下载和播放音乐、视频等。当用户使用浏览器查看带有活动内容的网页时,这些应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。主要用到Java Applet和ActiveX技术。
Java Applet使用Java语言开发,随页面下载,Java使用沙盒(Sandbox)根据安全模式所定义的规则来限制Java Applet的活动,它不会访问系统中规定安全范围之外的程序代码。但事实上Java Applet存在安全漏洞,可能被利用进行破坏。
ActiveX是微软的一个控件技术,它封装由网页设计者放在网页中来执行特定的任务的程序,可以由微软支持的多种语言开发但只能运行在Windows平台。ActiveX在安全性上不如Java Applet,一旦下载,能像其他程序一样执行,访问包括操作系统代码在内的所有系统资源,这是非常危险的。
Cookie是Netscape公司开发的,用来改善HTTP的无状态性。无状态的表现使得制造像购物车这样要在一定时间内记住用户动作的东西很难。Cookie实际上是一段小消息,在浏览器第一次连接时由HTTP服务器送到浏览器端,以后浏览器每次连接都把这个Cookie的一个拷贝返回给Web服务器,服务器用这个Cookie来记忆用户和维护一个跨多个页面的过程影像。Cookie不能用来窃取关于用户或用户计算机系统的信息,它们只能在某种程度上存储用户的信息,如计算机名字、IP地址、浏览器名称和访问的网页的URL等。所以,Cookie是相对安全的。
2.3对通信信道的安全威胁
Internet是连接Web客户机和服务器通信的信道,是不安全的。像Sniffer这样的嗅探程序,可对信道进行侦听,窃取机密信息,存在着对保密性的安全威胁。未经授权的用户可以改变信道中的信息流传输内容,造成对信息完整性的安全威胁。此外,还有像利用拒绝服务攻击,向网站服务器发送大量请求造成主机无法及时响应而瘫痪,或者发送大量的IP数据包来阻塞通信信道,使网络的速度便缓慢。
3 Web的安全防护技术
3.1 Web客户端的安全防护
Web客户端的防护措施,重点对Web程序组件的安全进行防护,严格限制从网络上任意下载程序并在本地执行。可以在浏览器进行设置,如Microsoft Internet Explorer的Internet选项的高级窗口中将Java相关选项关闭。在安全窗口中选择自定义级别,将ActiveX组件的相关选项选为禁用。在隐私窗口中根据需要选择Cookie的级别,也可以根据需要将c:“windows“cookie下的所有Cookie相关文件删除。
3.2通信信道的安全防护
通信信道的防护措施,可在安全性要求较高的环境中,利用HTTPS协议替代HTTP协议。利用安全套接层协议SSL保证安全传输文件,SSL通过在客户端浏览器软件和Web服务器之间建立一条安全通信信道,实现信息在Internet中传送的保密性和完整性。但SSL会造成Web服务器性能上的一些下降。
3.3 Web服务器端的安全防护
限制在Web服务器中账户数量,对在Web服务器上建立的账户,在口令长度及定期更改方面作出要求,防止被盗用。
Web服务器本身会存在一些安全上的漏洞,需要及时进行版本升级更新。
尽量使EMAIL、数据库等服务器与Web服务器分开,去掉无关的网络服务。
在Web服务器上去掉一些不用的如SHELL之类的解释器。
定期查看服务器中的日志文件,分析一切可疑事件。
设置好Web服务器上系统文件的权限和属性。
通过限制许可访问用户IP或DNS。
从CGI编程角度考虑安全。采用编译语言比解释语言会更安全些,并且CGI程序应放在独立于HTML存放目录之外的CGI-BIN下等措施。