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

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

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

q  是不是ZIP压缩包

q  必须的部件是否存在

q  关系是否完整

q  部件类型是否匹配

q  文件大小

q  宏和OLE对象

验证的方式也很多,这里给出最简单的方法,使用Open XML SDk中的OpenXmlValidator对象。代码清单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中看到验证一个文档很简单,只需使用OpenXmlValidator的Validate方法即可。该方法需提供一个WordprocessingDocument对象作为参数,并返回一个ValidationErrorInfo对象的集合。ValidationErrorInfo对象会为我们提供出现错误的基本描述、类型、节点、路径和部件。

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

作者:玄魂

出处:http://www.cnblogs.com/xuanhun/

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/web/XML/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文档
, 对象
, error
, console
, 一个
, WriteLine
安全校验
office open xml 文档、openxml开发文档、xml格式校验、xml校验 在线、xml校验,以便于您获取更多的相关知识。

时间: 2024-10-03 15:09:28

Open XML应用安全(4)文档校验的相关文章

XML 声明必须是文档中的第一个节点并且在它之前不允许出现空白字符

完整错误信息:         System.Xml.XmlException: 意外的 XML 声明.XML 声明必须是文档中的第一个节点并且在它之前不允许出现空白字符.第 64 行,位置 3. 背景:         拼接了两个xml文件,提示错误的位置一直第二个xml开头的位置 <?xmlversion="1.0" encoding="UTF-8"?>         第64行指的就是 <?xmlversion="1.0"

java中用dom解析xml的经典入门级文档

dom|xml 一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM.Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器.JAXP接口包含了三个包:(1)org.w3c.dom W3C推荐的用于XML标准规划文档对象模型

在线求教育!怎样根据产生xml的人的文档来编程?

问题描述 跟人合作开发,给传递xml时的部分的产品文档:请求URL:http://host:port/web_xml_interface/user_logon.xml?logonName=UserLogonName&password=UserPassword响应XML: <?xml version="1.0" encoding="GBK" ?> <logon_successsessionId="000000000000000000

基于PHP与XML的PDF文档生成技术

xml 摘要 本论文简要介绍了PHP.XML.PDF等技术的原理以及它们的应用情况.力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统.文中详细探讨了整个系统的组成部分以及各自的实现过程.并在最后给出一个运用这套系统实现的动态创建报表的实例. AbstractThis article introduced the fundamentls of PHP,XML and PDF and their application situation at present,ex

研究 Java 中 XML 文档模型的特性和性能

xml|性能 Java 中的 XML: 文档模型,第一部分:性能 研究 Java 中 XML 文档模型的特性和性能 文档选项 将此页作为电子邮件发送 最新推荐 Java 应用开发源动力 - 下载免费软件,快速启动开发 级别: 初级 Dennis M. Sosnoski, 总裁, Sosnoski Software Solutions, Inc. 2001 年 9 月 01 日 在本文中,Java 顾问 Dennis Sosnoski 比较几个 Java 文档模型的性能和功能.当选择模型时,无法做

MSXML 处理 xml 文档时外部DTD定义的问题 --属性设置 (ASP)

xml|问题|xml xmlfile = "http://myserver/catalog.xml"xslfile = "catalog.xsl" ' 创建相关对象Set xslDoc = server.CreateObject("MSXML2.FreeThreadedDOMDocument")Set xmlDoc = server.CreateObject("MSXML2.DOMDocument") ' 读取xsl文件xsl

Java实现DOM文档操作和XML文件互相转换

dom|xml|转换 本文简要描述了DOM的概念和内部逻辑结构,实例讲述DOM文档操作和XML文件互相转换的java实现过程. 1. DOM简介 目前,W3C已于2000年11月13日推出了规范DOM level 2.文档对象模型(DOM)是HTML和XML文档的编程接口规范,它与平台和语言是无关的,因而可以用各种语言在各种平台上实现.该模型定义了THML和XML文件在内存中的逻辑结构(即为文档),提供了访问.存取THML和XML文件的方法.利用DOM规范,可以实现DOM 文档和XML之间的相互

DOM文档操作和XML文件互相转换的java实现 (转贴)

dom|xml|转换 DOM文档操作和XML文件互相转换的java实现 [ 作者: 郭洪锋   添加时间: 2001-10-19 8:16:09 ] 郭洪锋 (ghf_email@sohu.com) 简介:该文简要描述了DOM的概念和内部逻辑结构,给出了DOM文档操作和XML文件互相转换的java实现过程.1. DOM简介 目前,W3C已于2000年11月13日推出了规范DOM level 2.文档对象模型(DOM)是HTML和XML文档的编程接口规范,它与平台和语言是无关的,因而可以用各种语言

Flash处理XML文档数据教程

xml|教程|数据 准备:首先你得有台电脑,其次是要装上Windows系统和Flash8. XML基础: 既然是处理XML文档,就要先来了解下XML文档.下面是我所了解的,有些是在Flash中用不到的. XML扩展标记语言(Extensible Markup Language)是SGML(Structured Generalized Markup Language)的子集,由World Wide Web Consortium(W3C)的XML工作组定义. 下面开始了解XML的结构.XML是由序言