zoukankan      html  css  js  c++  java
  • 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。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    关注我:关注玄魂的微信公众号

  • 相关阅读:
    git 有用配置汇总
    C语言:不定长结构体的实现方式
    Linux 错误码
    执行insmod提示 invalid module format
    ARM GIC 系列文章学习(转)
    Android:高通平台Camera HFR Usecase分析
    索引图-查表-颜色缩减
    连通域查找【未完】
    epoll
    手动编译安装tmux
  • 原文地址:https://www.cnblogs.com/xuanhun/p/2560134.html
Copyright © 2011-2022 走看看