Санітизація завантаженого документа

SanitiseLoadedDocument застосовує обрану політику безпеки до повного графа завантажених об'єктів та готує компактний повний перезапис

Профілі

ПрофільВидалений вміст
spJavaScriptOnlyДерева імен JavaScript документа та дії JavaScript
spActiveContentJavaScript плюс запуск, віддалену навігацію, URI, надсилання, імпорт, мультимедіа, rendition, XFA та пов'язані записи активного вмісту
spUntrustedDocumentУвесь активний вміст плюс вбудовані файли, пов'язані файли, анотації з вкладенням файлів, структури корисного навантаження rich-media та невідомі типи дій у слотах, що містять дії
spRichMediaOnlyАнотації rich-media та їхні від'єднані потоки корисного навантаження
spRedactionCleanupАнотації Redact і вкладення файлів, інформація про документ, метадані, пов'язані та вбудовані файли, а також кожен об'єкт, який став недосяжним через ці вилучення

Оголошення

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