已加载文档净化

SanitiseLoadedDocument 对完整的已加载对象图应用所选的安全策略,并准备一次紧凑的完整重写

配置文件

配置文件移除的内容
spJavaScriptOnly文档 JavaScript 名称树和 JavaScript 动作
spActiveContentJavaScript 加上 launch、远程导航、URI、提交、导入、多媒体、 rendition、XFA 及相关活动内容条目
spUntrustedDocument所有活动内容,加上内嵌文件、关联文件、文件附件注释、富媒体负载结构,以及在各动作槽位中发现的未知动作类型
spRichMediaOnly富媒体注释及其分离的负载流
spRedactionCleanupRedact 与文件附件注释、文档信息、元数据、关联与内嵌文件,以及因这些移除而不可达的全部对象

声明

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