• 第十三章 调试及安全性(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 来验证有效性。

  • 相关阅读:
    C++ Primer Plus章节编程练习(第十章)
    Bezier曲线
    C++静态持续变量
    计算机图形学之三维图形变换
    计算机图形学之二维图形变换
    C++ Primer Plus章节编程练习(第七章)
    C++中的指针与const
    Java 输入输出流
    Java Fx 画圆环
    注册事件及事件处理
  • 原文地址:https://www.cnblogs.com/stone_lv/p/4378352.html
Copyright © 2020-2023  润新知