- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正则表达式在.NET中数据验证机制研究
正则表达式在.NET中数据验证机制研究
摘 要:微软的.NET框架提供了一套完善的编写安全代码的技术,其中包括功能强大的正则表达式。正则表达式能够有效地实现数字验证、字符串验证、数字和字符串混合验证、HTML处理等各个方面的数据验证。深入地分析了.NET中正则表达式进行数据验证的原理和机制,给出了在MVC设计模式中分层实现数据验证的设计策略。??
关键词:正则表达式;.NET;数据验证;MVC??
中图分类号:TP311.13 文献标识码:A 文章编号:1672-7800(2011)03-0164-03?お?
??
作者简介:许光(1979-),男,辽宁葫芦岛人,渤海大学信息中心助理实验师,研究方向为网络技术与应用、软件工程。
0 引言??
随着WWW的飞速发展和广泛使用,各类基于.NET技术的Web应用系统被广泛地开发和应用。与此同时,大量快速开发出来的Web应用程序所带来的安全漏洞也越来越多。.NET框架本身提供了大量的编写安全代码的技术,利用这些技术,程序员可以开发出安全性较高的Web应用程序。微软的.NET框架提供了比较完善的安全保障体系,通过验证、授权和身份模拟来保障应用程序的执行安全。??
这些技术中的一大类为输入控制技术,这些输入控制技术能够实现对输入数据有效的安全验证。正则表达式是这类输入控制技术中功能最为强大的一种,它能够对用户所输入的数据进行极其细微的限制。??
1 .NET的数据验证机制??
1.1 基于.NET平台的Web应用程序安全性概述??
.NET提供了与传统的开发平台完全不同的一种安全架构。在传统的开发语言中,除了操作系统外,没有第三方介入资源的协调和管理,因此,需要程序员自己利用代码本身去负责检查内存错误、类型校验等。而在.NET中,程序员编写的代码被编译成基于中间语言(Intermediate Language:IL)的格式,从中间语言到机器语言的动态翻译是通过公共程序运行库(Common Language Run-time:CLR)来进行的。CLR不只负责代码的动态翻译过程,而且还负责管理代码的底层操作,包括内存分配、类型校验、安全及权限管理等等。然而,仅仅依靠这些自带的安全机制是远远不够的,在代码本身的安全性、抗御攻击的能力等方面,依然需要程序员通过编写出安全代码来担当更多的责任。文献[1-4]都表明了,很多安全隐患都是由于用户没有正确地处理用户的输入数据而造成的。增强.NET应用程序安全性的一个有效的措施就是:将用户的输入数据的长度及格式都限制到一个适当的范围内,始终对应用程序所接收的输入数据执行数据验证。??
1.2 .NET的数据验证机制??
Web应用程序一旦缺乏对输入数据有效性的验证,就极有可能接收格式并不良好甚至错误的输入数据,这些低级错误将成为应用系统的安全漏洞,造成极其严重的后果。因此,当用户在应用程序中输入数据时,系统应该在程序使用该数据之前,对数据的有效性进行验证。.NET提供了多种输入控制技术用以支持对用户输入信息的验证,主要包括:图片和附加码的数据验证、Web表单数据验证、Web窗体数据验证、验证控件数据验证、客户端脚本数据验证、正则表达式数据验证。其中,正则表达式的验证功能非常强大,能够有效地实现数字验证、字符串验证、数字和字符串混合验证、HTML处理等各个方面的数据验证,实现比其他各类验证更为详细的验证,对程序所接收的输入数据做到更为细微的限制。下面深入地分析利用.NET提供的RegularExpressionValidator(正则表达式)控件来实现对输入数据的验证的机制,包括输入数据的长度、内容和格式等。??
1.3 .NET中的正则表达式语法及输入数据验证机制??
在RegularExpressionValidator控件中,ValidationExpression属性用于指定需要验证的字符串匹配的正则表达式。程序员可以通过正则表达式编辑器直接选择已定义的通用的正则表达式,也可以在该编辑器的“验证表达式”中自定义自己的正则表达式。构造正则表达式需要涉及到Regex类。该类中包括了IsMatch()、Replace()和Split()方法以及Match的类,上述3个方法分别完成匹配、替换和拆分功能。??
在形式语言学和自动机原理中,正则表达式的递归定义如下:??
定义1 设字母表为∑,辅助字母表∑’={?h,ε,|,.,*,(,)}。①ε和?h都是∑上的正则表达式,它所表示的正规集分别为{ε}何{?h};②任何a∈∑,a是∑上的一个正则表达式,它所表示的正规集为{a};③假设e1和e2都是∑上的正则表达式,它们所表示的正规集分别为L(e1)和L(
原创力文档


文档评论(0)