已載入文件淨化

SanitiseLoadedDocument 將選取的安全策略套用至完整的已載入物件圖,並準備進行精簡的完整重寫

設定檔

設定檔移除的內容
spJavaScriptOnly文件 JavaScript 名稱樹與 JavaScript 動作
spActiveContentJavaScript,加上 launch、遠端導覽、URI、提交、匯入、多媒體、rendition、XFA 與相關的主動內容項目
spJavaScriptOnly文件 JavaScript 名稱樹與 JavaScript 動作
spActiveContentJavaScript 加上啟動、遠端導覽、URI、提交、匯入、多媒體、展演、XFA 與相關的主動內容項目
spUntrustedDocument所有主動內容加上內嵌檔案、關聯檔案、檔案附件註解、Rich Media 承載結構,以及在帶動作位置中發現的不明動作類型

宣告

function SanitiseLoadedDocument(Profile: THPDFSanitiseProfile;
  out Report: THPDFSanitiseReport): Boolean; overload;
function SanitiseLoadedDocument(
  out Report: THPDFSanitiseReport): Boolean; overload;

未指定設定檔的多載會使用 spUntrustedDocument

結果報告

THPDFSanitiseReport 會計算移除的動作、JavaScript 項目、內嵌檔案、高風險註解、XFA 項目、承載串流、分離參照、不可達物件與已造訪物件

Changed 指出物件圖是否變更,而 LimitExceeded 與 InvalidObjectGraph 則說明被拒絕的預檢

安全性與效能

範例

var
  Report: THPDFSanitiseReport;
begin
  PDF.LoadFromFile('untrusted.pdf');
  if not PDF.SanitiseLoadedDocument(spUntrustedDocument, Report) then
    raise Exception.Create('Document sanitisation was rejected');
  PDF.SaveLoadedDocument('sanitised.pdf');
end;

使用說明

相關 API