下面列出的是一些当前主流的针对Web服务器的攻击方式,它们有的会导致服务器被非法控制,有的会使服务器无法提供正常的服务,而有的甚至会对访问者的机器造成破坏。
2.1 缓冲区溢出
缓冲区溢出[1]主要是因为Web服务器程序对客户端提交的数据缺少安全必要的长度检测,服务器
程序的堆栈被恶意数据填充,导致服务器程序执行非法的指令或产生拒绝服务。如曾经造成十分大危害的蠕虫"红色代码(Red Code)"和"尼姆达(Nimda)"都是利用IIS的缓冲区溢出的漏洞而传播的。目前,缓冲区溢出是很难杜绝的,因为Web服务器程序开发的测试阶段无法对所有客户端可能提交的数据进行测试,所以不能确保Web服务器程序完全没有缓冲区溢出威胁的存在。
因为Web服务器程序提供专有的HTTP服务,所以我们可以通过HTTP协议确定客户端提交数据中每个字段的长度的合理范围,通过对所有用户提交的数据都进行严格的长