<iframe> встраивает в вашу страницу другой HTML-документ (карту, видео, виджет платежа или ненадёжный контент пользователя). Поскольку встроенная страница может запускать собственные скрипты, атрибут sandbox — это ключ к безопасному встраиванию.
<iframe> встраивает в вашу страницу другой HTML-документ (карту, видео, виджет платежа или ненадёжный контент пользователя). Поскольку встроенная страница может запускать собственные скрипты, атрибут sandbox — это ключ к безопасному встраиванию.
sandbox без значения применяет максимальные ограничения: нет скриптов, нет форм, нет всплывающих окон, рассматривает контент как уникальное происхождение. Затем вы выборочно повторно активируете возможности, перечислив токены:
<iframe sandbox></iframe> <!-- locked down: scripts disabled, etc. -->
<iframe sandbox="allow-scripts allow-forms allow-popups"></iframe>
Общие токены:
allow-scripts — разрешить запуск JavaScript.allow-forms — разрешить отправку форм.allow-same-origin — сохранить происхождение (без этого это нулевое происхождение, блокирующее хранилище/куки).allow-popups, allow-modals, allow-top-navigation.Примечание по безопасности: объединение allow-scripts и allow-same-origin позволяет фрейму удалить собственный sandbox, если он имеет то же происхождение — избегайте этой комбинации для ненадёжного контента.
<iframe
referrerpolicy="no-referrer"
allow="camera 'none'; geolocation 'none'"
></iframe>
Iframe встраивают контент от третьих лиц или сгенерированный пользователями, который вы не контролируете и которому не должны полностью доверять. sandbox (отказ по умолчанию, разрешение только необходимого) плюс referrerpolicy/allow позволяют вам изолировать этот контент — предотвращая запуск нежелательных скриптов, навигацию по вашей странице или доступ к функциям устройства.
Добавьте title для доступности и loading="lazy" для производительности.