Как доставить сгенерированный HTML в sandboxed iframe и организовать взаимодействие родительской страницы с iframe?

HTML можно передать через iframe.srcdoc, а события — через postMessage. Недоверенный документ должен оставаться изолированным от родительской страницы.

Короткий ответ

Что ответить на собеседовании

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.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее