Skip to content
View in the app

A better way to browse. Learn more.

Kaspersky Support Forum

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

main.js: video autoplay clone & wfd-invisible; дополнительный поток аудио/видео.

  • Author

Добрый день.

Просматривая сайт Instagram выявил неприятный баг:  https://take.ms/kpc5i

При запущенном видео нажатие любой клавиши на клавиатуре создает дополнительный поток аудио/видео. В скринкасте выше это видно во вкладке Media и в целом слышно по звуку многократного эха.

Сперва решил, что это баги самого сайта Instagram, но затем точно такой же баг выявил на другом сайте. Подумав, что вряд ли разработчики этих сайтов связаны, принялся за поиск источника проблемы.

Проверка в других браузерах - баг воспроизводится.

Проверка в инкогнито - баг воспроизводится.

Проверка без антивируса - баг НЕ воспроизводится.

https://take.ms/uk5OM - после изучения логов стало ясно, что в скрипте main.js (от Kaspersky Security Cloud), который инжектится на страницу, вешается обработчик keydown, который по каким-то причинам клонирует DOM-элемент видео. Это объясняет эхо.

https://take.ms/U3Hel - изучаю внимательнее код и вижу непосредственно вызов клонирования содержимого страницы, а также логику фильтрации… которая не работает =\

node.parentNode.getAttribute("wfd-invisible") === true

Эта проверка всегда будет false, так как getAttribute возвращает строку или null (ссылка на MDN). Также стоит упомянуть вызовы setAttribute, где вторым параметром вместо строки передается булево значение.

Исправленный вариант проверки выглядит так:

node.parentNode.getAttribute("wfd-invisible") === "true"

Неработающая логика фильтрации тоже баг, но не это вызывает множественное эхо.

Основная проблема заключается в том, что скрипт клонирует страницу целиком, включая video и audio с атрибутом autoplay, которые сразу же начинают воспроизведение.

Featured Replies

No posts to show
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.