Написать пост

Firefox будет блокировать все ссылки вида data:URI

Аватар Вячеслав Шарунов

Новая возможность блокировки data:URI будет внедрена Mozilla как часть антифишинговой функции браузера Firefox.

Mozilla внедряет функциональность блокировки загрузки data:URI из навигационной панели браузера Firefox в рамках противодействия злоупотреблению использования этого протокола фишинговыми сайтами.

Что такое data:URI?

Схема data:URI была разработана в 1998 году для возможности встраивания одних файлов в другие. Программисты с её помощью смогли загружать файл, представленный в виде ASCII-закодированного восьмеричного потока, в другой документ.

С того момента данная схема стала очень популярной среди веб-разработчиков и позволила им, прежде всего, встраивать текстовые файлы (CSS и JavaScript) и изображения (PNG и JPEG) в документы HTML без дополнительной загрузки каждого из них при помощи отдельного HTTP-запроса.

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

Использование злоумышленниками

Однако, в конце 2000-х годов исследователи установили, что data:URI часто используется злоумышленниками в целях фишинга и XSS-атак (межсайтовый скриптинг). Среди наиболее популярных и опасных случаев являются data:URI следующих типов: data:text/html;base64 и data:application/x-javascript;base64, которые предоставляют способ встраивания вредоносного кода HTML и JS в код вполне обычных и безопасных сайтов.

Разработчики Mozilla присоединились к коллегам из Google и Microsoft, которые уже реализовали блокировку неправомерного использования схемы data:URI в своих браузерах. Кристоф Кершбаумер, инженер Mozilla, работавший над новой функцией, сообщил:

Мы хотим заблокировать data:URI навигацию лишь верхнего уровня, которая, в основном, и используется в целях фишинга. Фактически, мы не видим реальных условий применения этого сорта навигации в обычных условиях, только лишь в качестве фишинговых атак.

Условия блокировки

В Firefox 59 инженеры Mozilla планируют развернуть ряд функций безопасности, которые предотвратят рендеринг опасных data:URI HTML, JS и SVG файлов в определённых условиях:

  • Ссылка URL-адреса на странице нажата вручную или программно;
  • Страница пытается загрузить URL-адрес с помощью таких функций JS, как location.href, location.assign() или location.replace();
  • Страница пытается загрузить URL-адрес в новой вкладке при помощи JS-функции window.open();
  • Внутренний контент frame пытается загрузить URL-адрес в окне верхнего уровня или в новой вкладке.

Безопасные условия использования

Ссылки data:URI, которые отображают изображения, форматы которых отличных от SVG, PDF-файлы, JSON и обычные текстовые файлы не будут затронуты, поскольку они не используются для фишинговых атак. Кроме того, HTML, JS и SVG файлы по-прежнему будут рендериться в следующих безопасных условиях:

  • Пользователь вручную вводит URL-адрес в адресной строке для загрузки содержимого;
  • Страница пытается загрузить URL-адрес данных в <frame> или <iframe>;
  • Страница использует URL-адрес для изображения или других ассетов;
  • Страница запускает загрузку файла данных.

Тестирование функциональности

Mozilla уже начала применять некоторые механизмы блокировки URI, начиная с Firefox 56, но официально они запланированы для всех пользователей лишь в Firefox 59. Полная версия функции блокировки URI уже активна в Firefox Nightly и версии для разработчиков, однако недоступна в недавно выпущенном браузере Firefox 57.

Для проверки урезанной функциональности блокировки в 56 или 57 версии браузера введите в панель адреса: about:config для доступа к скрытой панели настроек. После этого найдите security.data_uri.block_toplevel_data_uri_navigations и дважды щёлкните для включения функции.

Firefox будет блокировать все ссылки вида data:URI 1

Если всё прошло успешно, то при попытке перехода по ссылке, указывающей на data:URI, ничего не произойдёт:

Безопасность
Браузеры
Firefox
2653