HTML можно передать через iframe.srcdoc, а события — через postMessage. Недоверенный документ должен оставаться изолированным от родительской страницы.
Как доставить сгенерированный HTML в sandboxed iframe и организовать взаимодействие родительской страницы с iframe?
HTML можно передать через iframe.srcdoc, а события — через postMessage. Недоверенный документ должен оставаться изолированным от родительской страницы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
HTML можно передать через iframe.srcdoc, а события — через postMessage. Недоверенный документ должен оставаться изолированным от родительской страницы.
Начните с sandbox без разрешений, добавляя только необходимые, например allow-scripts. Не сочетайте allow-scripts и allow-same-origin для недоверенного документа своего origin. Проверяйте источник окна и формат сообщений; известный origin сравнивайте точно. У opaque origin значение null не подтверждает доверие. Не передавайте iframe секреты; для сложного контента предпочтителен отдельный origin.
Источник: developer.mozilla.org.