【TechTarget中国原创】为了运行一个Web站点,你的Web服务器至少必须开放端口80,处理HTTP Web网页的请求。不幸的是,黑客可以修改或利用这些请求引发服务器问题或者欺骗服务器显示有价值的信息。通过利用HTTP请求,黑客就有了访问Web服务器的合法路径,因而可以轻易地绕过防火墙和其他的安全设施,触发攻击。
HTTP攻击有两种类型。一种包括向Web服务器发送较长的URL,用以触发缓冲器溢出。另一种攻击是SQL注入,这个过程是向URL发送附加的SQL语句,获得backend数据库的访问权限。黑客经常使用窗体(forms)执行这些攻击,因为这两种攻击都利用意料不到的、用户提交的数据攻击编写不好的应用程序,来触发攻击。这也就是说,所有用户写入的数据在提交到另外的程序前都需要经过检查。例如,数据输入时为了创建一个Web网页或者是从数据库中找回,它在发布之前必须要经过检查,以确保所有的错误数据都被移除了,并且代码也要正确运行。
为了防御这些类型的攻击,企业的应用安全策略应该包括以下几个方面
- 在开发周期中不断测试技术和逻辑漏洞。可以实现这一点的两种方法是动态分析和静态分析。动态分析实际上包括了软件的运行。静态分析包括在不执行软件是对它的分析,这提供了在早期开发周期中执行测试的优势。
- 为完善组件层的综合测试、系统综合测试和应用功能以及开发测试开发程序。开发程序可能会比较繁重,Gartner估计,测试时移除漏洞的成本小于从产品系统中移除漏洞的2%。
- 确保你把变动管理包括进来了,因为Web应用代码的变动比率非常高,这就迅速降低了已有的安全评估的实用性。为了评定整个系统应用安全的任何变动的影响,当应用中的商业逻辑不断改变的时候,安全评估程序应该一直重复。
- 确保对开发人员的适当的培训。培训开发人员编写安全的代码不是必须表示他们编写的代码就是安全的,他们对Web服务器和浏览器的相互作用和互联网通信中使用的协议了解的越多,他们创建的应用程序就越可能不被黑客攻击。微软和SPI Dynamics合作,正在运行应用开发安全意识竞赛,并提供免费的webcasts 和 工作室。
下面是在任何Web应用开发周期中应该遵循的规则:
- 不要相信用户提供的数据
- 使所有用户输入干净并生效
- 在服务器上使数据生效
- 使用五点检查或.NET确认控制器
- 使用POST,而不是GET
- 避免使用隐藏格式
- 只用Cookies存储ID群
- 在独立的目录下定位不同的文件类型
- 使用完全的路径和文件名
- 在必要的地方以只读方式打开文件
- 跟上最新的攻击方法的步伐