CSP: require-trusted-types-for
CSP: require-trusted-types-for
Экспериментально: Это экспериментальная технология.
Перед использованием в рабочей среде тщательно изучите таблицу совместимости с браузерами.
Директива HTTP Content-Security-Policy (CSP) require-trusted-types-for Экспериментально инструктирует пользовательские агенты управлять данными, передаваемыми функциям DOM XSS-атаки, таким как Element.innerHTML setter.
При использовании эти функции принимают только не подделываемые, типизированные значения, созданные политиками Trusted Types, и отбрасывают строки. Вместе с директивой trusted-types, которая защищает создание политик Trusted Types, это позволяет авторам определять правила, защищающие запись значений в DOM и, таким образом, уменьшить поверхность атаки DOM XSS до небольших изолированных частей кода веб-приложения, облегчая их мониторинг и код-ревью.
Синтаксис
Content-Security-Policy: require-trusted-types-for 'script';
'script'-
Запрещает использование строк с функциями ввода DOM XSS и требует соответствия типов, созданных политиками Trusted Types.
Примеры
// 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 | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | |
require-trusted-types-for |
83 |
83 |
Нет |
Нет |
69 |
Нет |
83 |
83 |
Нет |
59 |
Нет |
13.0 |
См. также
© 2005–2022 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/require-trusted-types-for