ASP应用程序的安全

千万不要轻视正确配置安全设置的重要性。如果不正确配置安全设置,不但会使您的 ASP 应用程序遭受不必要的篡改,而且会妨碍正当用户访问您的 .asp 文件。
  Web 服务器提供了各种方法来保护您的 ASP 应用程序免受未授权的访问和篡改。在您读完本主题下的安全信息之后,请花一定的时间仔细检查一下您的 Win dows NT 和 Web 服务器安全性文档。

NTFS 权限
  您可以通过为单独的文件和目录应用 NTFS 访问权限来保护 ASP 应用程序文件。NTFS 权限是 Web 服务器安全性的基础,它定义了一个或一组用户访问文件和目录的不同级别。当拥有 Windows NT 有效帐号的用户试图访问一个有权限限制的文件时,计算机将检查文件的访问控制表 (ACL)。该表定义了不同用户和用户组所被赋予的权限。如果用户的帐号具有打开文件的权限,计算机则允许该用户访问文件。例如,Web 服务器上的 Web 应用程序的所有者需要有“更改”权限来查看、更改和删除应用程序的 .asp 文件。但是,访问该应用程序的公共用户应仅被授予“只读”权限,以便将其限制为只能查看而不能更改应用程序的 Web页。

维护 Global.asa 的安全
  为了充分保护 ASP 应用程序,一定要在应用程序的 Global.asa 文件上为适当的用户或用户组设置 NTFS 文件权限。如果 Global.asa 包含向浏览器返回信息的命令而您没有保护 Global.asa 文件,则信息将被返回给浏览器,即便应用程序的其他文件被保护。

注意 一定要对应用程序的文件应用统一的 NTFS 权限。例如,如果您不小心过度限制了一应用程序需要包含的文件的 NTFS 权限,则用户可能无法查看或运行该应用程序。为了防止此类问题,在为您的应用程序分配 NTFS 权限之前应仔细计划。

Web 服务器权限
  您可以通过配置您的 Web 服务器的权限来限制所有用户查看、运行和操作您的 ASP 页的方式。不同于 NTFS 权限提供的控制特定用户对应用程序文件和目录的访问方式, Web 服务器权限应用于所有用户,并且不区分用户帐号的类型。

  对于要运行您的 ASP 应用程序的用户,在设置 Web 服务器权限时,必须遵循下列原则:

  ·对包含 .asp 文件的虚拟目录允许“读”或“脚本”权限。 
  ·对 .asp 文件和其他包含脚本的文件(如 .htm 文件等)所在的虚目录允
许“读”和“脚本”权限。 
  ·对包含 .asp 文件和其他需要“执行”权限才能运行的文件(如 .exe 和
.dll 文件等)的虚目录允许“读”和“执行”权限。 

脚本映射文件

  应用程序的脚本映射保证了 Web 服务器不会意外地下载 .asp 文件的源代码
。例如,即使您为包含了某个 .asp 文件的目录设置了“读”权限,只要该 .as
p 文件隶属于某个脚本映射应用程序,那么您的 Web 服务器就不会将该文件的源
代码返回给用户。

Cookie 安全性
  ASP 使用 SessionID cookie 跟踪应用程序访问或会话期间特定的 Web 浏览
器的信息。这就是说,带有相应的 cookie 的 HTTP 请求被认为是来自同一 Web
浏览器。Web 服务器可以使用 SessionID cookies 配置带有用户特定会话信息
的 ASP 应用程序。例如,如果您的应用程序是一个允许用户选择和购买 CD 唱盘
的联机音乐商店,就可以用 SessionID 跟踪用户漫游整个应用程序时的选择。

SessionID 能否被黑客猜中?
  为了防止计算机黑客猜中 SessionID cookie 并获得对合法用户的会话变量
的访问,Web 服务器为每个 SessionID 指派一个随机生成号码。每当用户的 We
b 浏览器返回一个 SessionID cookie 时,服务器取出 SessionID 和被赋予的数
字,接着检查是否与存储在服务器上的生成号码一致。若两个号码一致,将允许
用户访问会话变量。这一技术的有效性在于被赋予的数字的长度(64 位),此长
度使计算机黑客猜中 SessionID 从而窃取用户的活动会话的可能性几乎为 0。

加密重要的 SessionID Cookie
  截获了用户 sessionID cookie 的计算机黑客可以使用此 cookie 假冒该用
户。如果 ASP 应用程序包含私人信息,信用卡或银行帐户号码,拥有窃取的 co
okie 的计算机黑客就可以在应用程序中开始一个活动会话并获取这些信息。您可
以通过对您的 Web 服务器和用户的浏览器间的通讯链路加密来防止 SessionID 
cookie 被截获。

使用身份验证机制保护被限制的 ASP 内容
  您可以要求每个试图访问被限制的 ASP 内容的用户必须要有有效的 Window
s NT 帐号的用户名和密码。每当用户试图访问被限制的内容时,Web 服务器将进
行身份验证,即确认用户身份,以检查用户是否拥有有效的 Windows NT 帐号。

Web 服务器支持以下几种身份验证方式:

  ·基本身份验证 提示用户输入用户名和密码。 
  ·Windows NT 请求/响应式身份验证  从用户的 Web 浏览器通过加密方式
获取用户身份信息。 
  然而,Web 服务器仅当禁止匿名访问或 Windows NT 文件系统的权限限制匿
名访问时才验证用户身份。

保护元数据库
  访问元数据库的 ASP 脚本需要 Web 服务器所运行的计算机的管理员权限。
在从远程计算机上运行这些脚本时,须经已通过身份验证的连接,如使用 Windo
ws NT 请求/响应验证方式进行连接。应该为管理级 .asp 文件创建一个服务器或
目录并将其目录安全验证方式设置为 Windows NT 请求/响应式身份验证。目前,
仅 Microsoft Internet Explorer version 2.0 或更高版本支持 Windows NT 请
求/响应式身份验证。

使用 SSL 维护应用程序的安全
  Secure Sockets Layer (SSL) 3.0 协议作为 Web 服务器安全特性,提供了
一种安全的虚拟透明方式来建立与用户的加密通讯连接。SSL 保证了 Web 内容的
验证,并能可靠地确认访问被限制的 Web 站点的用户的身份。

  通过 SSL,您可以要求试图访问被限制的 ASP 应用程序的用户与您的服务器
建立一个加密连接;以防用户与应用程序间交换的重要信息被截取。 

维护包含文件的安全
  如果您从位于没有保护的虚拟根目录中的 .asp 文件中包含了位于启用了 S
SL 的目录中的文件,则 SSL 将不被应用于被包含文件。因此,为了保证应用 S
SL,应确保包含及被包含的文件都位于启用了 SSL 的目录中。

客户资格认证
  控制对您的 ASP 应用程序访问的一种十分安全的方法是要求用户使用客户资
格登录。客户资格是包含用户身份信息的数字身份证,它的作用与传统的诸如护
照或驾驶执照等身份证明相同。用户通常从委托的第三方组织获得客户资格,第
三方组织在发放资格证之前确认用户的身份信息。(通常,这类组织要求姓名、
地址、电话号码及所在组织名称;此类信息的详细程度随给予的身份等级而异。

  每当用户试图登录到需要资格验证的应用程序时,用户的 Web 浏览器会自动
向服务器发送用户资格。如果 Web 服务器的 Secure Sockets Layer (SSL) 资格
映射特性配置正确,那么服务器就可以在许可用户对 ASP 应用程序访问之前对其
身份进行确认。

用于处理资格证明的 ASP 脚本
  作为 ASP 应用程序开发人员,您可以编写脚本来检查资格是否存在并读取资
格字段。例如,您可以从资格证明中访问用户名字段和公司名字段。Active Ser
ver Pages 在 Request 对象的 ClientCertificate 集合中保存资格信息。

  必须将 Web 服务器配置为接受或需要客户资格,然后才能通过 ASP 处理客
户资格;否则,ClientCertificate 集合将为空。

时间: 2024-08-04 05:03:50

ASP应用程序的安全的相关文章

如何保护ASP.NET程序

asp.net|程序 从安全的角度上讲,相对于自身的前一版本,ASP.NET已经表现出很大的改进.使用这一新的开发平台,程序员可以很容易地设计用户输入验证,同时,这一平台增加了很多特性,比如锁住程序功能等.除此之外,.NET运行时间能够支持垃圾收集和安全字符串的功能,这些都能预防外部的各种攻击.一个合适安全的.NET程序不仅能够阻止外部攻击,并且能够最大程度地减少各种形式的垃圾. 但是,不管ASP.NET具有多么完善的功能,在安全问题上它也不是完美无缺.安全分析专家H.D. Moore,也就是四

ASP 应用程序开发原则指南

简介 "Active Server Page (ASP)"应用程序的成功常常取决于对体系结构和设计这两方面的取舍.考虑到 ASP 技术的范围之广和当前应用程序固有的复杂性,这种取舍是非常困难的.本文中,我将为您提供一些特定的指导方针,以助您成功开发基于 ASP 的应用程序. 我已将指导方针整理成一组开发原则.在评估解决方案和技术时,可以应用以下原则帮助您做出决策.以下原则是我长期以来从成功的开发模式所得的经验积累. 原则 1:采用标准方法 建立命名约定并使目录结构标准化,可以帮助您大大

改进ASP应用程序中的字符串处理性能

程序|性能|字符串 摘要:大多数 Active Server Pages (ASP) 应用程序都要通过字符串连接来创建呈现给用户的 HTML 格式的数据.本文对几种创建此 HTML 数据流的方法进行了比较,在特定情况下,某些方法在性能方面要优于其他方法.本文假定您已经具备一定的 ASP 和 Visual Basic 编程方面的知识. 简介 编写 ASP 页面时,开发人员实际上是创建一个格式化的文本流,通过 ASP 提供的 Response 对象写入 Web 客户端.创建此文本流的方法有多种,而您

优化ASP应用程序技巧四则

程序|技巧|优化|技巧|优化 本文将向大家介绍四则优化ASP应用程序的技巧. 1.将经常使用的数据缓存在 Application 或 Session 对象中 ASP的Application和Session对象为将数据暂存在内存中提供了方便的容器.你可以将数据指派到 Application和Session对象中,这些数据在HTTP调用之前保留在内存中.Session数据是按每个用户分别存储的,而Application数据则在所有用户之间共享. 什么时候将数据装载到 Application 或 Se

改进 ASP 应用程序中的字符串处理性能

程序|性能|字符串|性能|字符串 摘要:大多数 Active Server Pages (ASP) 应用程序都要通过字符串连接来创建呈现给用户的 HTML 格式的数据.本文对几种创建此 HTML 数据流的方法进行了比较,在特定情况下,某些方法在性能方面要优于其他方法.本文假定您已经具备一定的 ASP 和 Visual Basic 编程方面的知识. 简介 编写 ASP 页面时,开发人员实际上是创建一个格式化的文本流,通过 ASP 提供的 Response 对象写入 Web 客户端.创建此文本流的方

小试牛刀,制作一个简单的ASP.NET程序

asp.net|程序 通过学习上面几节让人头痛的概念和辛苦的安装配置工作后,我们已经具备了开发ASP.NET 程序的初步知识和运行平台了,那么,让我们就开始进入ASP.NET的世界,感受ASP.NET精彩吧. 我们使用最"简陋"的开发工具――记事本,来建议第一个ASP.NET的页面,在记事本里添加如下代码: <%@ Page Language="VB" %> <html> <head> <title>My First

使用@Page指令的Src属性 简化对老版本的asp.net程序的维护

asp.net|程序      转眼间,距离微软推出.net平台已经4年了,.net也经历了 从 1.0 到 1.1 再到2.0的升级. 由于 asp.net 2.0 和vs 2005 IDE的各种优越特性的吸引,大伙都忙着学习2.0,将项目升级至vs 2005 下面开发. 但实际上,很多项目由于种种原因,无法升级到新版本.随着时间的变迁,老版本的项目维护问题越来越让人头痛.虽然.net诞生时间不长,但4年的时间足够积累一量的项目.    我手上就有个用vs.net 2002开发的项目,由于种种

在ASP.NET程序中实现上传下载文件

asp.net|程序|上传|下载 //检查上传文件不为空   if(File1.PostedFile!=null)   {         string nam = File1.PostedFile.FileName ;    //取得文件名(抱括路径)里最后一个"."的索引    int i= nam.LastIndexOf(".");    //取得文件扩展名    string newext =nam.Substring(i);    //这里我自动根据日期和

ASP.NET程序中实现校验码图像生成

asp.net|程序 在Web系统中很多时候需要用到校验码,例如我们经常遇到不少电子邮件.论坛的注册过程需要我们输入校验码,这是为了提高安全性.今天我们就来讲讲如何生成校验码. 使用ASP.NET来生成校验码图像很方便,网上也有不少教程与文章有介绍,但是都讲的太简单了,不够实用.我来介绍一点自己的思路,算是抛砖引玉吧. 首先我们来看看,生成校验码的一种常见方式: 1. 生成校验码的字符串 2. 将该字符串输出为图像 具体步骤 下面我们就开始简单的例子来介绍这个过程,首先打开VS.NET,新建一个

ASP应用程序中的字符串处理

程序|字符串 摘要:大多数 Active Server Pages (ASP) 应用程序都要通过字符串连接来创建呈现给用户的 HTML 格式的数据.本文对几种创建此 HTML 数据流的方法进行了比较,在特定情况下,某些方法在性能方面要优于其他方法.本文假定您已经具备一定的 ASP 和 Visual Basic 编程方面的知识.     简介      编写 ASP 页面时,开发人员实际上是创建一个格式化的文本流,通过 ASP 提供的 Response 对象写入 Web 客户端.创建此文本流的方法