### ASP 漏洞及安全建议(1)

一 前言
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 安全问题来探讨。