Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1307

Trusted Types

ПроверилCybersecurity entrepreneur & security researcher

Что такое Trusted Types?

Trusted TypesБраузерный API и CSP-директива, предотвращающие DOM-XSS: опасные DOM-приёмники обязаны получать типизированные, проверенные политикой значения вместо сырых строк.


Trusted Types — защита, разработанная Google и стандартизированная как рабочий черновик W3C (W3C Working Draft), нацеленная на устранение DOM-XSS в самом корне. При включении через CSP-директивы require-trusted-types-for 'script' и trusted-types браузер отказывается выполнять приёмники внедрения — innerHTML, outerHTML, document.write, eval, setTimeout со строкой, script.src, iframe.srcdoc и десятки других — всякий раз, когда им передаётся обычная строка. Вместо этого код должен передавать типизированные объекты (TrustedHTML, TrustedScript, TrustedScriptURL), создаваемые именованными, проверенными политиками через trustedTypes.createPolicy(...). Так тысячи небезопасных приёмников кодовой базы сводятся к горстке пригодных для ревью функций-политик.

Механизм поставляется в браузерах на Chromium (Chrome и Edge, начиная с версии 83, май 2020); реализации в Firefox и Safari пока в процессе разработки, поэтому он применяется как эшелонированная защита (defence-in-depth) наряду со строгой CSP, а не как единственная мера. Специальная политика с именем default перехватывает любую строку, которая проскользнула мимо, позволяя командам направить её через санитайзер — DOMPurify нативно возвращает TrustedHTML, поэтому DOMPurify.sanitize(html, {RETURN_TRUSTED_TYPE: true}) удовлетворяет принудительному режиму. Google приписывает Trusted Types снижение DOM-XSS практически до нуля в таких продуктах, как Search и Photos, поскольку большинство их исторических XSS-багов были клиентскими. Развёртывайте сначала в режиме Content-Security-Policy-Report-Only, чтобы отловить нарушения до включения принудительного режима.

flowchart TD
  A[Недоверенная строка<br/>location.hash, postMessage] --> B{Присваивается<br/>DOM-приёмнику? напр. innerHTML}
  B -->|Trusted Types принудительно| C{Значение —<br/>объект TrustedHTML?}
  C -->|Да, из проверенной политики| D[Приёмник выполняется безопасно]
  C -->|Нет, сырая строка| E[Браузер бросает<br/>TypeError + отчёт CSP]
  E --> F[политика default<br/>DOMPurify санитизирует]
  F --> C
  B -->|Без Trusted Types| G[Приёмник выполняет сырую строку<br/>DOM-XSS]

Примеры

  1. 01

    Content-Security-Policy: require-trusted-types-for 'script'; trusted-types default;

  2. 02

    Замена element.innerHTML = userInput на element.innerHTML = policy.createHTML(userInput).

Частые вопросы

Что такое Trusted Types?

Браузерный API и CSP-директива, предотвращающие DOM-XSS: опасные DOM-приёмники обязаны получать типизированные, проверенные политикой значения вместо сырых строк. Относится к категории Безопасность приложений в кибербезопасности.

Что означает Trusted Types?

Браузерный API и CSP-директива, предотвращающие DOM-XSS: опасные DOM-приёмники обязаны получать типизированные, проверенные политикой значения вместо сырых строк.

Как защититься от Trusted Types?

Защита от Trusted Types обычно сочетает технические меры и операционные практики, как описано в определении выше.

Связанные термины

См. также