NET程序漏洞及分析.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:1 大小:24KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

NET程序漏洞及分析.doc

NET程序漏洞及分析.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

虞美香www.yumeixiang.orgymx1.引言作为微软的最新一代产品,.NET框架提供了比较完善的安全保障体系,通过验证、授权和身份模拟来保障应用程序的执行安全。这些设定保存在应用程序的web.config文件中。但是,在构建ASP.NET应用程序的时候,仅仅依靠这些自带的安全机制还是远远不够的。在代码本身的安全性、抗御攻击的能力等方面,程序员应当担负更多的责任。因此,程序员要尽量编写安全的代码。下面从编写ASP.NET应用程序出发,讲述一些提高代码安全性的方法。2.限制用户的输入,提高程序的安全性很多安全隐患是由于用户没有正确地处理用户的输入而造成的。要增强ASP.NET应用程序的安全性,你就应该将用户输入信息的长度限制到一个适当的范围内。始终对一组预期值执行窗体输入验证以及字符串格式设置/类型验证。允许接受用户无限量的输入信息,会给恶意用户进行缓冲区溢出的攻击造成机会,这会导致应用程序崩溃。因此,在用ASP.NET开发窗体页面的时候,可以利用ASP.NET提供的规则验证控件(RegularExpressionValidator)来对用户的输入信息进行限制,包括信息的长度、内容和格式,如:设置属性ValidationExpression=“[A-Z0-9a-z]{5,}”。这样做可以限制用户输入的长度和内容,减少攻击等等。除此之外,验证控件还有很多种,如:RangeValidator、CustomValidator等。信息存入数据库中以后,用户在读取信息时,这些代码就会执行。另外还可以在编写后台代码的时候来限制用户的输入,比如限制用户在文本框中的输入长度,可以编写函数来验证输入信息的长度,过滤用户输入的敏感字符,同时给用户相关提示;可以利用文本框的方法Substring截取一定长度的文本内容来限制输入信息。3.信息泄漏在ASP.NET应用中,几乎所有HTML页面的_VIEWSTATE隐藏域中都可以找到有关应用的信息。由于_VIEWSTATE是BASE64编码的,所以常常被忽略,但黑客可以方便地解码BASE64数据,用不着花什么力气就可以得到_VIEWSTATE提供的详细资料。默认情况下,_VIEWSTATE数据将包含来自页面控件的动态数据、开发者在_VIEWSTATE中显式保存的数据以及上述数据的密码签字。为了让隐藏域更加安全,可以设置EnableViewStatMAC=“true”,启用_VIEWSTATE数据加密功能。然后,将machineKey验证类型设置成3DES,要求ASP.NET用TripleDES对称加密算法加密_VIEWSTATE数据。4.使用加密算法加密口令存储无论在何种情况下,应用程序都不应该以明文方式存储用户密码。在使用ASP.NET编写应用程