Sandbox или Как IT-гигант «утонул» в песочнице

от автора

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

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 — вообще не показывает ошибок, как будто, так и надо =)

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

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


ссылка на оригинал статьи https://habr.com/ru/articles/742838/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *