Trusted Types
Что такое Trusted Types?
Trusted TypesБраузерный API и CSP-директива, предотвращающие DOM-XSS: опасные DOM-приёмники принимают только типизированные значения, прошедшие политику, вместо строк.
Trusted Types — защита, разработанная Google и стандартизированная W3C, нацеленная на устранение DOM-XSS. При включении директив CSP require-trusted-types-for и trusted-types браузер отказывается выполнять приёмники вроде innerHTML, document.write, eval и script.src, если им передана обычная строка. Код должен создавать типизированные объекты (TrustedHTML, TrustedScript, TrustedScriptURL) через именованные, проверенные политики. Так все опасные записи в DOM проходят через узкую и аудируемую поверхность, что устраняет большинство устаревших XSS-приёмников. Широко применяется в Google, Bing, Shopify и других крупных веб-проектах.
● Примеры
- 01
Content-Security-Policy: require-trusted-types-for 'script'; trusted-types default;
- 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 — защита, разработанная Google и стандартизированная W3C, нацеленная на устранение DOM-XSS. При включении директив CSP require-trusted-types-for и trusted-types браузер отказывается выполнять приёмники вроде innerHTML, document.write, eval и script.src, если им передана обычная строка. Код должен создавать типизированные объекты (TrustedHTML, TrustedScript, TrustedScriptURL) через именованные, проверенные политики. Так все опасные записи в DOM проходят через узкую и аудируемую поверхность, что устраняет большинство устаревших XSS-приёмников. Широко применяется в Google, Bing, Shopify и других крупных веб-проектах.
Как защититься от Trusted Types?
Защита от Trusted Types обычно сочетает технические меры и операционные практики, как описано в определении выше.
● Связанные термины
- attacks№ 240
Межсайтовый скриптинг (XSS)
Веб-уязвимость, позволяющая злоумышленнику внедрять вредоносные скрипты на страницы, просматриваемые другими пользователями, и выполнять их в браузере жертвы под источником сайта.
- appsec№ 214
Политика безопасности контента (CSP)
HTTP-заголовок ответа, указывающий браузеру, какие источники скриптов, стилей, фреймов и других ресурсов допустимы, что снижает последствия XSS и инъекций данных.
- appsec№ 773
Кодирование вывода
Преобразование недоверенных данных в безопасную для конкретного контекста вывода (HTML, JavaScript, URL, SQL, shell) форму, чтобы они не вырвались и не выполнились как код.
- appsec№ 982
Безопасное программирование
Практика написания исходного кода, минимизирующая дефекты безопасности за счёт оборонительных паттернов, языковых правил и общепризнанных руководств.
- appsec№ 538
Валидация ввода
Серверная проверка того, что каждый недоверенный ввод соответствует ожидаемому типу, длине, диапазону, формату и набору значений до его обработки приложением.
- appsec№ 496
HTTP-заголовки безопасности
Заголовки ответа, инструктирующие браузер применять защитные меры: только HTTPS, ограничения встраивания, политики контента, контроль referrer.