Для начала небольшое техническое предисловие.

Sandbox - это песочница для iframe, устанавливается через атрибут sandbox="" для ограничений на загружаемый фрейм, чтобы повысить безопасность текущей страницы. 

Сразу скажу, всё, что вы указали в атрибутах, будет наследоваться и на другие сайты, которые были открыты через скрипт window.open(uri) или ссылки <a href="uri" target="blank">. Любые обновления страниц с кешем и без, переходы на другие сайты в новых вкладках будут сохранять флаги песочницы, пока вы не закроете вкладку браузера.

 Разберем самый основной список правил (перечисляются через пробел для iframe):

  • allow-forms - разрешает работу форм на вложенной странице;

  • allow-pointer-lock - включает API-интерфейсы на вложенной странице;

  • allow-orientation-lock - разрешает API для управления ориентацией экрана;

  • allow-popups - разрешает отображение всплывающих окон на вложенной странице;

  • allow-same-origin - воспринимает вставляемый документ, как документ загруженный из того же источника, что и основной документ;

  • allow-scripts - разрешает работу скриптов на вложенной странице;

  • allow-top-navigation - разрешает содержимому вставляемого документа получать доступ к элементам верхнего уровня (документам, окнам);

  • allow-popups-to-escape-sandbox - позволяет помещенному в песочницу документу открывать новые окна, не навязывая им флаги песочницы. Это позволит, например, безопасно изолировать стороннюю рекламу, не применяя те же ограничения к странице, на которую ссылается реклама.

А теперь сам цимес: есть такой популярный сервис, как ЯндексВидео, который агрегирует видео со всего интернета. Вы можете смотреть видео прямо на Яндексе, смотреть встроенную рекламу, при этом свои цели реализуют и рекламодатели, и клиенты, всё работало прекрасно до начала июня месяца.

И уже в июне рекламодатель может получить клиента, который накидает товаров в корзину, захочет оплатить, но тут его будет ждать сюрпрайз ****. Нативные формы перестали работать из-за политики фрейма sandbox="allow-same-origin allow-scripts allow-presentation allow-popups", и об этом вам никто не скажет, пока вы не зайдёте в консоль разработчика, ну либо вас засыпет недовольством от клиентов, которые не могут оплатить товар. 

Кстати mail.ru поиск-видео также страдает той же бедой. Я проверил это на всех популярных браузерах – Chrome, Safari, Safari IOS. FF - вообще не показывает ошибок, как будто, так и надо =)

Прикладываю вам пару видео воспроизведения бага. Я специально выбрал видео из дзен платформы.

Странность в том, что я отписал в поддержку ЯндексВидео, они сначала баг признали, несколько менеджеров поменялось в череде ответов, и в итоге все закончилось тем, что очередной специалист ответил, что проблемы не видит. Бинго, приятное каждому рекламодателю и клиенту, которому придется идти непосредственно на сайт продавца, совершать лишние дополнительные действия для совершения покупки или другого действия.

Комментарии (2)


  1. FFxSquall
    29.06.2023 15:17
    +1

    Это точно не нововведения браузеров в плане обращения с сайтами открытыми через iframe sandbox? Просто давно игрался с sandbox аттрибутом и вроде бы таких проблем не было, то есть ограничения работали именно в самом iframe, но не во вкладках которые он породил.


  1. simenoff
    29.06.2023 15:17
    +2

    Странно, в чём смысл наследовать песочницу?