第十三章 调试及安全性(In .net4.5) 之 验证程序输入

1. 概述

  本章介绍验证程序输入的重要性以及各种验证方法: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 来验证有效性。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。