您的位置:寻梦网首页编程乐园ASP编程ASP网络安全

ASP网络安全手册(一)




一 前言

  Microsoft Active Server Pages(ASP)是服务器端脚本编写环境, 使用它可以创建和运行动态、交互的 Web 服务器应用程序。 使用 ASP 可以组合 HTML 页 、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用程序。

现在很多网站特别是电子商务方面的网站, 在前台上大都用ASP来实现。 以至于现在ASP在网站应用上很普遍。

ASP是开发网站应用的快速工具, 但是有些网站管理员只看到ASP的快速开发能力, 却忽视了ASP安全问题。 ASP从一开始就一直受到众多漏洞, 后门的困扰, 包括%81的噩梦, 密码验证问题, IIS漏洞等等都一直使ASP网站开发人员心惊胆跳。

本文试图从开放了ASP服务的操作系统漏洞和ASP程序本身漏洞, 阐述ASP安全问题, 并给出解决方法或者建议。

二 关键字

  ASP, 网络安全, IIS, SSL, 加密。

三 ASP工作机理

  Active Server Page技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段, 极大地提高了开发的效果。 在讨论ASP的安全性问题之前, 让我们来看看ASP是怎么工作的。 ASP脚本是采用明文(plain text)方式来编写的。

  ASP脚本是一系列按特定语法(目前支持vbscript和jscript两种脚本语言)编写的, 与标准HTML页面混合在一起的脚本所构成的文本格式的文件。 当客户端的最终用户用WEB浏览器通过INTERNET来访问基于ASP脚本的应用时, WEB浏览器将向WEB服务器发出HTTP请求。 WEB服务器分析、判断出该请求是ASP脚本的应用后, 自动通过ISAPI接口调用ASP脚本的解释运行引擎(ASP.DLL)。 ASP.DLL将从文件系统或内部缓冲区获取指定的ASP脚本文件, 接着就进行语法分析并解释执行。 最终的处理结果将形成HTML格式的内容, 通过WEB服务器"原路"返回给WEB浏览器, 由WEB浏览器在客户端形成最终的结果呈现。 这样就完成了一次完整的ASP脚本调用。 若干个有机的ASP脚本调用就组成了一个完整的ASP脚本应用。

  让我们来看看运行ASP所需的环境:
Microsoft Internet Information Server 3.0/4.0/5.0 on NT Server
Microsoft Internet Information Server 3.0/4.0/5.0 on Win2000
Microsoft Personal Web Server on Windows 95/98
  WINDOWS NT Option Pack所带的Microsoft IIS提供了强大的功能, 但是IIS在网络安全方面却是比较危险的。 因为很少有人会用Windows 95/98当服务器, 因此本文我更多的从NT中的IIS安全问题来探讨。

四 微软自称的ASP的安全优点

  虽然我们本文的重点是探讨ASP漏洞和后门, 但是有必要谈谈ASP在网络安全方面的"优点", 之所以加个"", 是因为有时这些微软宣称的"优点"恰恰是其安全隐犯。

  微软称ASP在网络安全方面一大优点就是用户不能看到ASP的源程序, 从ASP的原理上看, ASP在服务端执行并解释成标准的HTML语句, 再传送给客户端浏览器。 "屏蔽"源程序能很好的维护ASP开发人员的版权, 试想你辛辛苦苦做了一个很优秀的程序, 给人任意COPY, 你会怎么想?而且黑客还能分析你的ASP程序, 挑出漏洞。 更重要的是有些ASP开发者喜欢把密码, 有特权的用户名和路径直接写在程序中, 这样别人通过猜密码, 猜路径, 很容易找到攻击系统的"入口"。 但是目前已经发现了很多能查看ASP源程序的漏洞, 后面我们还要讨论。

  IIS支持虚拟目录, 通过在"服务器属性"对话框中的"目录"标签可以管理虚拟目录。 建立虚拟目录对于管理WEB站点具有非常重要的意义。 虚拟目录隐藏了有关站点目录结构的重要信息。 因为在浏览器中, 客户通过选择"查看源代码", 很容易就能获取页面的文件路径信息, 如果在WEB页中使用物理路径, 将暴露有关站点目录的重要信息, 这容易导致系统受到攻击。 其次, 只要两台机器具有相同的虚拟目录, 你就可以在不对页面代码做任何改动的情况下, 将WEB页面从一台机器上移到另一台机器。 还有就是, 当你将WEB页面放置于虚拟目录下后, 你可以对目录设置不同的属性, 如:Read、Excute、Script。 读访问表示将目录内容从IIS传递到浏览器。 而执行访问则可以使在该目录内执行可执行的文件。 当你需要使用ASP时, 就必须将你存放.asp文件的目录设置为"Excute(执行)"。 建议大家在设置WEB站点时, 将HTML文件同ASP文件分开放置在不同的目录下, 然后将HTML子目录设置为"读", 将ASP子目录设置为"执行", 这不仅方便了对WEB的管理, 而且最重要的提高了ASP程序的安全性, 防止了程序内容被客户所访问。


(作者:yesky  来源:网络精英)