ole
(object linking and embedding,物件連線與嵌入)不僅是桌面應用程式整合,而且還定義和實現了一種允許應用程式作為軟體「物件」(資料集合和運算元據的函式)彼此進行「連線」的
機制,這種連線機制和協議稱為部件物件模型(component object model,com)。
ole可以用來建立復合文件,復合文件包含了建立於不同源應用程式,有著不同型別的資料,因此它可以把文字、聲音、影象、**、應用程式等組合在一起。
但對ole的
支援也帶來了一些安全性問題,如在outlook 2002及以上版本中,黑客如果在郵件中嵌入危險
ole物件,就可以對其肆意偽裝,有可能騙過使用者導致安全問題。
ole2
是ole
物件的公升級版本。
office
中的巨集也是作為
ole2
物件嵌入到文件中的,下面看在
word
中建立乙個
excel
文件的例子。
首先在word
文件中選擇插入→**→
excel
電子**,如圖14-23所示。
圖14-23 插入電子**
執行圖14-23的
操作後得到圖14-24所示的結果。
圖14-24 在
word
中插入excel**
實際上,插入的
excel
會作為乙個
ole2
物件儲存在對應的
zip包的邏輯目錄下,然後通過關係載入到主文件中。
對於.docx文件,
ole物件通常儲存在word\embeddings目錄下,如圖14-25所示。
圖14-25 ole
物件在word中的儲存
ole物件以它的原生格式儲存在zip包中。還有另一類
ole物件稱為
olepackage
物件,這類物件可以包含任意檔案,並且可以設定命令。
olepackage
物件以ole2
二進位制格式儲存。
如果嵌入乙個惡意的
ole物件,或者惡意程式替換或者向文件中新增惡意
ole物件,都會造成很嚴重的後果。
如果應用場景有需要,無法完全避免
ole物件的執行,但是可以借助防毒軟體來減弱
office
文件的危害。如果你還不是很放心,可以通過程式處理
ole物件,刪除或者重新命名。只要有個解壓縮工具就可以完成這樣的工作,下面提供一小段**,見**清單14-21。
**清單14-21 刪除
ole物件
public
static
void removepart(string document)}}
提示使用以上**之前,需要在專案中新增對documentformat.openxml.dll的
引用,才能夠使用
open xml sdk提供的
api。
在**中,首先獲取主文件物件maindocumentpart
,使用mainpart.embeddedobjectparts和mainpart.embeddedpackage
parts分別獲取文件中的
ole物件和
olepackage
物件,最後呼叫maindocumentpart
類的deleteparts方法刪除它們。
如果防止惡意新增或者修改
ole物件,可以對
open xml
文件進行數字簽名,在後面的博文會進行講解。
--------------------------注:本文部分內容改編自《.net 安全揭秘》
Open XML應用安全(2)OLE機制
ole object linking and embedding 物件連線與嵌入 不僅是桌面應用程式整合,而且還定義和實現了一種允許應用程式作為軟體 物件 資料集合和運算元據的函式 彼此進行 連線 的機制,這種連線機制和協議稱為部件物件模型 component object model com ol...
Open XML應用安全(4)文件校驗
當 office 應用程式開啟乙個 office 文件的時候,首先會進行校驗,主要校驗的是該文件的有效性和完整性。當隨便將乙個 exe文件的字尾改為 docx 時候,開啟該檔案肯定會報檔案無效。對於乙個 open xml 文件,如果想去校驗它,可以從如下幾個方面 q是不是zip 壓縮包 q必須的部件...
J2EE安全應用
color red tomcat 5.5 測試可用 color 閱讀宣告 本次案例,使用tomcat的 color red tomcat users.xml color 檔案 tomcat users.xml提供了安全領域,這個檔案會在tomcat啟動時載入進記憶體,它足夠用來 測試安全的配置效果。...