Заголовки: CSP.require-trusted-types-for
Content-Security-Policy: директива require-trusted-types-for
Базовый уровень 2026 Недавно стала доступна
С февраля 2026 года эта функция работает на последних устройствах и в последних версиях браузеров. Эта функция может не работать на старых устройствах или в старых браузерах.
Директива HTTP Content-Security-Policy (CSP) require-trusted-types-for предписывает пользовательским агентам контролировать данные, передаваемые функциям — точкам внедрения DOM XSS, например сеттеру Element.innerHTML.
При использовании эти функции принимают только значения с типами, созданные политиками Trusted Type, которые невозможно подделать, и отклоняют строки. В сочетании с директивой trusted-types, которая ограничивает создание политик Trusted Type, это позволяет авторам определять правила, контролирующие запись значений в DOM. Тем самым область возможных атак DOM XSS сокращается до небольших изолированных участков кодовой базы веб-приложения, которые проще отслеживать и проверять.
Синтаксис
Content-Security-Policy: require-trusted-types-for 'script';
'script'-
Запрещает использование строк с функциями — точками внедрения DOM XSS и требует соответствия типов, созданных политиками Trusted Type.
Примеры
// Content-Security-Policy: require-trusted-types-for 'script'; trusted-types foo;
const attackerInput = '<svg onload="alert(/cross-site-scripting/)" />';
const el = document.createElement("div");
if (typeof trustedTypes !== "undefined") {
// Create a policy that can create TrustedHTML values
// after sanitizing the input strings with DOMPurify library.
const sanitizer = trustedTypes.createPolicy("foo", {
createHTML: (input) => DOMPurify.sanitize(input),
});
el.innerHTML = sanitizer.createHTML(attackerInput); // Puts the sanitized value into the DOM.
el.innerHTML = attackerInput; // Rejects a string value; throws a TypeError.
}
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | WebView на iOS | |
require-trusted-types-for |
83 | 83 | 148 | 69 | 26 | 83 | 148 | 59 | 26 | 13.0 | 83 | 26 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Content-Security-Policy/require-trusted-types-for