Spec-Zone.ru › HTTP

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.
}

Спецификации

Спецификация
Trusted Types
# require-trusted-types-for-csp-directive

Совместимость с браузерами

Рабочие столы Мобильные устройства
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

См. также

  • Content-Security-Policy
  • Межсайтовый скриптинг (XSS)
  • DOM XSS injection sinks, защищаемые Trusted Types
  • Предотвращение уязвимостей DOM-based cross-site scripting с помощью Trusted Types
  • Trusted Types с DOMPurify XSS-санитайзером
  • Полифилл Trusted Types

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API