• Open XML应用安全(4)文档校验


    Open XML应用安全(4)文档校验

    Office应用程序打开一个Office文档时候,首先会进行校验,主要校验是该文档有效性和完整性。

    当随便将一个exe文档后缀改为docx时候,打开该文件肯定会报文件无效。对于一个Open XML文档,如果想去校验它,可以从如下几个方面:

    q  是不是ZIP压缩包

    q  必须部件是否存在

    q  关系是否完整

    q  部件类型是否匹配

    q  文件大小

    q  宏和OLE对象

    验证方式也很多,这里给出最简单方法,使用Open XML SDkOpenXmlValidator对象。代码清单14-24是如何验证一个Word文档有效性方法。

    代码清单14-24  验证文档有效性

    public static void ValidateWordDocument(string filepath)

    {

        try

        {

            OpenXmlValidator validator = new OpenXmlValidator();

            int count = 0;

            foreach (ValidationErrorInfo error in

                validator.Validate(

                    WordprocessingDocument.Open(filepath, true)))

            {

                count++;

                Console.WriteLine("Error " + count);

                Console.WriteLine("Description: " + error.Description);

                Console.WriteLine("ErrorType: " + error.ErrorType);

                Console.WriteLine("Node: " + error.Node);

                Console.WriteLine("Path: " + error.Path.XPath);

                Console.WriteLine("Part: " + error.Part.Uri);

                Console.WriteLine("-------------------------------------------");

            }

            Console.ReadKey();

        }

        catch (Exception ex)

        {

            Console.WriteLine(ex.Message);

        }

    }

    在代码清单14-24中看到验证一个文档很简单,只需使用OpenXmlValidatorValidate方法即可。该方法需提供一个WordprocessingDocument对象作为参数,并返回一个ValidationErrorInfo对象集合。ValidationErrorInfo对象会为们提供出现错误基本描述、类型、节点、路径和部件。

     

    --------------注:本文部分内容改编自《.NET 安全揭秘》


    作者:玄魂
    出处:http://www.cnblogs.com/xuanhun/
    原文链接:http://www.cnblogs.com/xuanhun/ 更多内容,请访问我的个人站点 对编程,安全感兴趣的,加qq群:hacking-1群:303242737,hacking-2群:147098303,nw.js,electron交流群 313717550。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    关注我:关注玄魂的微信公众号

  • 相关阅读:
    C/C++筛选法算素数
    JAVAFX-5事件总结
    JAVAFX-5 开发应用
    JAVAFX-4 开发应用
    JAVAFX-3 开发应用
    JAVAFX-1 开发应用
    JAVAFX-2 开发应用
    Swing 100行画图示例
    Java的Json解析包FastJson使用
    杨辉三角
  • 原文地址:https://www.cnblogs.com/xuanhun/p/2560134.html
Copyright © 2020-2023  润新知