這里的隱藏?cái)?shù)據(jù)是指Office文檔默認(rèn)存儲(chǔ)的一些基本屬性信息,很有可能會(huì)包含一些敏感信息,比如公司、創(chuàng)建者、簽名、評(píng)論等。
針對(duì)隱藏信息,Office為我們提供了文檔檢查器。可以按照信任中心→個(gè)人信息選項(xiàng)→文檔檢查器的方式打開(kāi)文檔檢查器。如圖14-26所示。
圖14-26 文檔檢查器
文檔檢查器是用來(lái)檢查隱藏信息的,并提供了刪除功能,F(xiàn)在再來(lái)看Office定義的個(gè)人信息,包括如下各項(xiàng):姓名和縮寫、公司和組織名稱、計(jì)算機(jī)名、網(wǎng)絡(luò)服務(wù)器和硬盤驅(qū)動(dòng)器、其他文件屬性和摘要信息、OLE對(duì)象、文檔不同版本的作者信息、文檔修訂信息、文檔版本信息、模板信息、隱藏文本、修訂和批注。
當(dāng)執(zhí)行檢查操作的時(shí)候,會(huì)列出含有隱藏信息的項(xiàng),并給出刪除功能,如圖14-27所示。
圖14-27 文檔審查結(jié)果
如果想實(shí)現(xiàn)更靈活的功能,可以在代碼中調(diào)用文檔檢查器。在C#中,可以通過(guò)調(diào)用Microsoft.Office.Core.IdocumentInspector接口來(lái)調(diào)用文檔檢查器的功能。如果你有VSTO的編程基礎(chǔ),可以編寫一個(gè)Office插件來(lái)實(shí)現(xiàn)一些自定功能。當(dāng)然,使用Open XML SDK 提供的API可以更方便的實(shí)現(xiàn)操作隱藏信息的功能。代碼清單14-22是一個(gè)檢索Word文檔屬性的例子。
代碼清單14-22 檢索Word文檔屬性
public static void GetPropertyFromDocument(string document)
{
XmlDocument xmlProperties = new XmlDocument();
using (WordprocessingDocument wordDoc = WordprocessingDocument.Open(document, false))
{
ExtendedFilePropertiesPart appPart = wordDoc.ExtendedFilePropertiesPart;
xmlProperties.Load(appPart.GetStream());
}
XmlNodeList chars = xmlProperties.GetElementsByTagName("Characters");
MessageBox.Show(chars.Item(0).InnerText);
}
在代碼清單14-22中,只需注意它是如何提取屬性信息即可,只需調(diào)用WordprocessingDocument對(duì)象的ExtendedFilePropertiesPart屬性即可。
通過(guò)上面的例子我想告訴各位讀者的是,所有隱藏信息都會(huì)作為文檔的屬性存在,只要你去看看API的幫助文檔就會(huì)了解一切。同時(shí)使用Open XML SDK的API開(kāi)發(fā)起來(lái)要比VSTO容易得多。為了加深印象,再來(lái)看一個(gè)移除隱藏文字的例子,如代碼清單14-23所示。
代碼清單14-23 移除隱藏文字
public static void DeleteHiddenText(string filepath)
{
// Given a document name, delete all the hidden text.
using (WordprocessingDocument wdDoc =
WordprocessingDocument.Open(filepath, true))
{
Body body = wdDoc.MainDocumentPart.Document.Body;
var hiddens = body.Descendants
foreach (var hidden in hiddens)
{
var run = hidden.Parent.Parent;
run.Remove();
}
}
}
在代碼清單14-23中,關(guān)鍵代碼只有一句:
var hiddens = body.Descendants
其中,對(duì)象Vanish代表隱藏文字。
隱藏?cái)?shù)據(jù)的修改這里就再不演示,讀者在了解原理之后,在需要的時(shí)候可以通過(guò)Office的工具或者自己動(dòng)手編寫代碼來(lái)消除安全隱患。
全國(guó)職稱計(jì)算機(jī)考試速成過(guò)關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書(shū)籍 | |
全國(guó)職稱計(jì)算機(jī)考試速成過(guò)關(guān)系列套裝:W .. 定價(jià):¥124 優(yōu)惠價(jià):¥124.0 更多書(shū)籍 |