На Android нашли рабочий способ вернуть фоновый YouTube без Premium

На Android нашли рабочий способ вернуть фоновый YouTube без Premium

На Android нашли рабочий способ вернуть фоновый YouTube без Premium

Если у вас внезапно перестал играть YouTube в фоне, дело не в браузере. Это сам YouTube. На этой неделе компания подтвердила: фоновое воспроизведение видео для пользователей без подписки Premium теперь целенаправленно ограничивается. Под удар попали даже те браузеры, которые раньше спокойно позволяли слушать ролики с заблокированным экраном или при свёрнутом окне.

Brave, Vivaldi и Microsoft Edge — всё, лавочка закрыта. Видео останавливается сразу, как только вы уходите из вкладки или сворачиваете приложение.

И это, как подчёркивает YouTube, не баг, а осознанная политика. Фон — только для Premium. Ценность подписки, так сказать, должна оставаться «священной».

Пока YouTube закручивает гайки, пользователи экспериментируют. Один из рабочих вариантовAndroid-браузеры с поддержкой расширений. Таких немного, но, например, Microsoft Edge Canary пока ещё держится.

Схема выглядит так:

  1. Устанавливаем Edge Canary.
  2. Добавляем расширение Violentmonkey — это менеджер пользовательских скриптов.
  3. Ставим userscript Disable Page Visibility API (короткий скрипт на 16 строк, доступен на Greasy Fork).

Скрипт маскирует факт того, что страница ушла в фон, и YouTube продолжает считать, что вы всё ещё «смотрите» видео. В итоге ролик можно запустить снова через системное уведомление. Он будет воспроизводиться даже при переключении между приложениями и вкладками.

Работает не только с YouTube: аналогичный трюк может быть полезен и при просмотре видео на Facebook, Instagram (принадлежат корпорации Meta, признанной экстремистской и запрещённой в России) и других сайтах. Впрочем, есть несколько не очень приятных нюансов:

Во-первых, установка Userscript — это всегда риск. Скрипты могут делать с браузером всё что угодно, поэтому смотреть код и источник всё-таки стоит.

Во-вторых, Edge Canary — не самый дружелюбный браузер, особенно если раньше вы с подобными расширениями не сталкивались.

В-третьих, это явно временное решение. YouTube уже активно прикрывает подобные обходы, и нет никаких гарантий, что этот способ будет работать через неделю или две.

Интересный момент: Mozilla Firefox на Android у некоторых пользователей по-прежнему спокойно воспроизводит YouTube в фоне без расширений. Если вдруг перестанет, можно попробовать тот же Disable Page Visibility API или другие YouTube-аддоны, которых у Firefox хватает.

А вот в браузерах без поддержки расширений всё печально. Google Chrome, Brave, Vivaldi — мимо. Samsung Internet хоть и поддерживает дополнения, но подходящего обхода там пока нет.

Напомним, на днях YouTube начал показывать «контент недоступен» из-за блокировщиков рекламы. Однако можно нажать кнопку «Узнать больше» под сообщением об ошибке, а затем вернуться назад — в ряде случаев это «пробуждает» плеер и видео запускается. Работает не всегда, но многим помогло.

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

Правила обработки запросов при этом добавляются динамически, а фильтрация осуществляется по регулярным выражениям, соответствующим подмножествам знаков, которые могут присутствовать на определенных позициях в URL.

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru