第十三章 调试及安全性(In .net4.5) 之 验证程序输入
2015-03-30 16:10
169 查看
1. 概述
本章介绍验证程序输入的重要性以及各种验证方法:Parse、TryParse、Convert、正则表达式、JavaScriptSerializer、XML Schemas。
2. 主要内容
2.1 验证程序输入的重要性
① 正常用户的错误输入
② 恶意用户的攻击
③ 集成的其他系统的变动
2.2 管理数据完整性
① 记录完整性:一般是数据库中的一条记录,需要用主键标记。
② 取值完整性:一个数据项所允许的数据范围。
③ 引用完整性:相关的记录项引用关系要保持完整。
④ 自定义的完整性:根据个性的业务逻辑自定义的数据完整性。
*使用事务机制,可以更好的确保数据的完整性。
2.3 使用 Parse、TryParse、Convert
Parse 和 TryParse 用于将字符串类型转化为指定的类型。
Convert用于在各个基类型之间转换。Convert允许null(返回默认值)。
2.4 使用正则表达式
2.5 验证 Json 和 Xml
3. 总结
① 验证程序输入是避免被错误输入和恶意攻击击溃的重要措施。
② 程序和数据存储都需要考虑数据完整性。
③ Parse、TryParse 和 Convert 可以用来实现类型间转换。
④ 正则表达式 可以用指定的模式匹配输入信息,或者替换指定的内容。
⑤ 接收Json和Xml信息时,要用内建的类型JavaScriptSerializer和XML Schemas 来验证有效性。
本章介绍验证程序输入的重要性以及各种验证方法:Parse、TryParse、Convert、正则表达式、JavaScriptSerializer、XML Schemas。
2. 主要内容
2.1 验证程序输入的重要性
① 正常用户的错误输入
② 恶意用户的攻击
③ 集成的其他系统的变动
2.2 管理数据完整性
① 记录完整性:一般是数据库中的一条记录,需要用主键标记。
② 取值完整性:一个数据项所允许的数据范围。
③ 引用完整性:相关的记录项引用关系要保持完整。
④ 自定义的完整性:根据个性的业务逻辑自定义的数据完整性。
*使用事务机制,可以更好的确保数据的完整性。
2.3 使用 Parse、TryParse、Convert
Parse 和 TryParse 用于将字符串类型转化为指定的类型。
CulturalInfo english = new CulturalInfo("En"); CulturalInfo dutch = new CulturalInfo("Nl"); string value = "€19,95"; decimal d = decimal.Parse(value, NumberStyles.Currency, dutch); Console.WriteLine(d.ToString(english)); // 19.95
Convert用于在各个基类型之间转换。Convert允许null(返回默认值)。
int i = Convert.ToInt32(null); Console.WriteLine(i); // displays 0
2.4 使用正则表达式
static bool ValidateZipCodeRegEx(string zipCode) { Match match = Regex.Match(zipCode, @"^[1-9][0-9]{4}\s?[a-][A-Z]{2}$", RegexOptions.IgnoreCase); return match.Success; }
2.5 验证 Json 和 Xml
var serialization = new JavaScriptSerializer(); var result = serialization.Deserialize<Dictionary<string, object>>(json);
3. 总结
① 验证程序输入是避免被错误输入和恶意攻击击溃的重要措施。
② 程序和数据存储都需要考虑数据完整性。
③ Parse、TryParse 和 Convert 可以用来实现类型间转换。
④ 正则表达式 可以用指定的模式匹配输入信息,或者替换指定的内容。
⑤ 接收Json和Xml信息时,要用内建的类型JavaScriptSerializer和XML Schemas 来验证有效性。
相关文章推荐
- 第十五章 调试及安全性(In .net4.5) 之 管理程序集
- 第十六章 调试及安全性(In .net4.5) 之 调试程序
- 第十七章 调试及安全性(In .net4.5) 之 程序诊断
- 第十四章 调试及安全性(In .net4.5) 之 对称及非对称加密
- Yii防止注入的安全性措施和输入验证
- 面试准备(常用函数和数据结构)freopen (在程序调试时从文本输入,程序结果放在文本中)
- vs2010下如何调试带输入参数的程序
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- java程序中,数据验证,如何判断输入的文本框中的值是不是int型?
- .Net强名称验证带本机代码混编译程序调试一例--强名去见鬼
- 打印输入中单词长度直方图 (垂直方向) c程序书中的练习题,上机无书下输入,调试
- VC调试带有输入参数的console程序
- 如何调试需要输入参数的C++程序
- 如何调试命令行程序?——怎样输入命令行程序参数
- 即时调试(Just-in-timeDebugging) Visual Studio调试 断点中断程序的执行(断点指令)
- VS2008调试程序时,发现键盘输入迟钝
- 转:InfoPath 中,如何验证 Contact Selector 控件是否输入了有效值,或如何强制输入? Validate the Contact Selector in InfoPath – Make the Contact Selector Man
- 即时调试(Just-in-timeDebugging) Visual Studio调试 断点中断程序的执行(断点指令)
- vs2010下如何调试带输入参数的程序
- SilverLight数据输入验证三:Visual Studio 2010调试Silverlight Validation调试设置技巧