Что делает Trusted Types
Вопрос
На странице включено Content-Security-Policy: require-trusted-types-for 'script'. Что произойдёт при el.innerHTML = userString, где userString обычная строка?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Варианты ответа
- Строка автоматически пройдёт встроенный санитайзер браузера и вставится
- Скрипты и обработчики внутри строки вырежутся, остальной HTML вставится
- Ничего не изменится: Trusted Types ограничивает только
evalиnew Function - Будет TypeError: в такой приёмник можно передать только
TrustedHTMLправильный ответ
Разбор
Trusted Types не санитайзит сам. Он запрещает присваивать обычные строки в DOM-приёмники вроде innerHTML, eval, script.src и требует объект, созданный через trustedTypes.createPolicy. Внутри политики вы сами вызываете санитайзер. Исключение: если задана политика с именем default, браузер прогонит строку через неё. Ни автоматической чистки, ни вырезания скриптов он не делает, и затрагивает не только eval.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Безопасность фронтенда»
- Защита на уровне заголовков
- XSS и как от него защищаться
- CSP
- CSRF
- Site и origin
- XSS
- Защита от кликджекинга
- Защищает ли CORS от CSRF