Firefox будет блокировать все ссылки вида data:URI
Новости
Новая возможность будет внедрена Mozilla как часть антифишинговой функции браузера Firefox.
3К открытий3К показов
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
и дважды щёлкните для включения функции.
Если всё прошло успешно, то при попытке перехода по ссылке, указывающей на data:URI
, ничего не произойдёт:
3К открытий3К показов