読み込んだドキュメントのサニタイズ

SanitiseLoadedDocument は選択されたセキュリティポリシーを完全に読み込まれたオブジェクトグラフに適用し、コンパクトな完全再書き込みを準備します

プロファイル

プロファイル削除されたコンテンツ
spJavaScriptOnlyドキュメント JavaScript の名前ツリーと JavaScript アクション
spActiveContentJavaScript に加えて、launch・リモートナビゲーション・URI・送信・インポート・マルチメディア・レンディション・XFA、および関連するアクティブコンテンツのエントリ
spUntrustedDocumentすべてのアクティブコンテンツに加えて、埋め込みファイル・関連ファイル・添付ファイル注釈・リッチメディアのペイロード構造、およびアクション保持スロットに見つかった未知のアクションタイプ
spRichMediaOnlyリッチメディア注釈と、切り離されたペイロードストリーム
spRedactionCleanup黒塗り注釈と添付ファイル注釈・文書情報・メタデータ・関連ファイルと埋め込みファイル、およびこれらの削除によって到達不能になったすべてのオブジェクト

宣言

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

プロファイルなしのオーバーロードは spUntrustedDocument を使用します

結果レポート

THPDFSanitiseReport は削除されたアクション、JavaScript エントリ、埋め込みファイル、リスクの高い注釈、XFA エントリ、ペイロードストリーム、切り離された参照、到達不能なオブジェクト、および訪問したオブジェクトをカウントします

Changed はオブジェクトグラフが変更されたかどうかを示し、LimitExceeded と InvalidObjectGraph は preflight が拒否された理由を示します

安全性とパフォーマンス

例

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