Обновить
64K+

Браузеры

Веб-обозреватели

54,39
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Russian Trusted в Firefox для Android: выборочная проверка цепочек сертификатов

Время на прочтение5 мин
Охват и читатели3K

Как я сделал форк Fenix для сайтов, чьи TLS-цепочки не принимаются обычной сборкой Firefox, и почему это не «защита от MITM».

Началось всё с обычной пользовательской проблемы: некоторые сайты, в том числе банковские, не открывались в привычных мне браузерах. Из тех, что я проверил, подключение проходило в Яндекс Браузере и браузере с поддержкой ГОСТ. В мобильном Firefox соединение останавливалось на проверке сертификата.

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

Так появился matre$ka: форк Fenix на базе Firefox для Android с небольшим патчем GeckoView. Он добавляет ограниченную поддержку цепочек Russian Trusted и интерфейс, который показывает, когда сработало это дополнительное доверие.

Сразу важная оговорка: проект не устраняет атаки типа man-in-the-middle и не делает банковский сайт безопасным. Это изменение набора центров сертификации, которым браузер готов доверять в определённых случаях. Такой механизм решает проблему совместимости, но одновременно расширяет модель доверия.

Читать далее

Новости

Утечки WebRTC и почему его отключение — плохая идея: разбираем механику деанона и нативную подмену

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели7.1K

В современном антидетекте есть такое понятие, как утечка IP-адреса через WebRTC. У тех, кто работает с мультиаккаунтингом и с антидетект-браузером, такая утечка может вызывать нервный приступ или неконтролируемую агрессию по отношению к поставщику прокси, антидетект-браузера или к обоим сразу. И действительно, такая ситуация не может радовать.

Читать как ваш IP утекает через WebRTC

Brevier — браузер, созданный только для чтения

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.5K

У меня очень давно в «идеях» лежала запись о том, что нужно создать браузер, который предназначен исключительно для чтения. Каждый раз я вспоминал о ней, когда натыкался на очередной сайт, где контент сложно прочитать из-за отвратительной вёрстки или обилия рекламы. И вот время настало: недельный лимит токенов не был израсходован, и мы с товарищем Клодом напряглись и создали браузер для чтения Brevier. Тот факт, что я уже много лет занимаюсь фронтенд-разработкой, дал свои плоды — я решил сделать браузер без JavaScript и без CSS.

Пролог

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

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

Затем появились драконы.

Читать далее

Google отказывал нашему скрейперу, пока мы не поняли, что он смотрит не на IP

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели7.9K

Задача звучала скучно: собирать выдачу Google. Много, регулярно, через обычные резидентные прокси и без платных SERP API.

Первая версия честно открывала Chrome, вбивала запрос и получала капчу. Вторая получала капчу чуть реже. А потом один IP отработал 1210 запросов подряд, и Google ни разу не попросил доказать, что мы не робот. Между этими двумя точками было двадцать экспериментов и вкладка, которая съела 3 гигабайта памяти. И главный вывод: мы всё это время думали о Google неправильно.

Читать далее

ЭЦП в Safari на macOS: как я подружил Госплагин, Контур.Плагин и КриптоПро с Safari Web Extensions

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели5.4K

Если у вас Mac и электронная подпись на Рутокене, вы наверняка знаете ритуал: чтобы войти на Госуслуги по ЭЦП, отчитаться в личном кабинете ФНС или подписать документ в Диадоке, нужно открыть Chrome. Госплагин, Контур.Плагин и КриптоПро ЭЦП Browser plug‑in официально работают только в Chromium‑браузерах и Firefox. У КриптоПро есть старое Safari App Extension, но в актуальных версиях Safari оно даже не появляется в настройках.

Я захотел, чтобы всё это работало в Safari, и в итоге получилось три небольших приложения для macOS с открытым кодом: Gosplugin Safari (Госуслуги/ЕСИА), Kontur Safari (Диадок и сервисы Контура) и CryptoPro Safari (nalog.ru, торговые площадки и всё, что работает через cadesplugin). Ниже — как это устроено и на какие грабли Safari я наступил по дороге.

Читать далее

Прощай, setTimeout(0): как современный Web API управляет приоритетами задач и разгружает главный поток

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6K

Представьте ситуацию: человек полчаса собирал важный отчёт в веб-таблице или подбирал сложную комбинацию фильтров, нажимает «Сохранить» или «Применить» — и страница намертво замирает. Курсор превращается в колесико, меню не открывается, скролл не работает. В голове пользователя сразу паника: «Всё зависло? Мои данные пропали? Нажать ещё раз? Перезагрузить страницу?!»

Ему абсолютно всё равно, что под капотом в этот момент браузер пересчитывает 500 000 записей. Если страница не реагирует на клик — приложение кажется сломанным.

Почему так происходит? Однопоточный Main Thread наглухо заблокирован вычислениями. Но как дать браузеру возможность реагировать на действия человека, не останавливая сам расчёт?

Мы собрали бенчмарк и на реальных профилях из DevTools сравнили современные подходы для освобождения main thread. Внутри — результаты замеров, трассировки Event Loop и ответ на вопрос, как сохранить полную отзывчивость интерфейса при различных нагрузках.

Читать далее

AudioContext и шрифты: на кого точно не подумаешь если профиль забанят

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8.3K

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

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

В экосистеме антидетект-решений тоже есть свои незаметные (на первый взгляд бесполезные), но важные элементы. Их игнорирование может послужить причиной бана вашего профиля или целой сетки профилей (когда работаешь через антидетект-браузер). А удаление таких элементов из экосистемы невозможно, так как они ее часть.

Читать про пассивные отпечатки

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

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.3K

Нужно было загрузить на сайт посольства пакет документов одним PDF – свидетельство о рождении, дипломы, справки. Лимит – 1 МБ. Загружать сканы всех своих документов в бесплатный онлайн-сервис не хотелось, а платный редактор на букву «А» после «оптимизации» сделал файл больше исходного.

На компьютере выход нашёлся быстро. А вот с телефона сжать PDF, никуда его не отправляя, почти нечем. Поэтому появился компрессор, который работает целиком в браузере – на iPhone, Android и десктопе: файл не покидает устройство, а после первого открытия всё работает даже без интернета. Рассказываю, как он устроен, где проигрывает Ghostscript и как самому проверить, что файл никуда не уходит.

Читать далее

Как я подавал шахматное расширение в Chrome Web Store: разрешения, данные и отказ

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.9K

Вторая часть истории о том, как моё шахматное расширение попадало в Chrome Web Store. Первая была про оплату аккаунта разработчика и мои ошибки, эта про саму подачу: что спрашивает форма, какие объяснения прошли проверку, где я чуть не написал неправду в разделе о данных и как получил отказ по своей же вине.

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

Читать далее

Шрифты, CDN и хостинг: трансграничная передача, которую никто не замечает

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели12K

Я делаю сервис, через который проходят чужие договоры, поэтому к 152-ФЗ отношусь внимательнее многих. Документы, формы, вход - всё уходит на сервер в России, это я проверял не раз. А на прошлой неделе решил проверить не сервис, а сам сайт - просто посмотреть, к каким доменам обращается браузер, когда человек открывает главную.

Нашёл три иностранных компании. Ни одну из них я туда сознательно не звал.

Читать далее

Passkey Editor: расширение для Burp Suite для пентеста WebAuthn

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели7.9K

Пентест WebAuthn быстро упирается в трафик, который Burp показывает почти как непрозрачный набор байтов: нужные поля скрыты за CBOR и несколькими слоями кодирования. Passkey Editor снимает эти обёртки, позволяет менять данные прямо в запросе и собирать их обратно так, чтобы сервер продолжал обрабатывать процедуру.

В статье речь пойдет о том, как устроен этот инструмент, какие проверки он автоматизирует и где на практике остаётся поверхность для атак на passkey-аутентификацию.

Разобрать инструмент

Good Bear 1.0: изолированное доверие к российской PKI, интерфейс, лицензия и сборка

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели9.4K

Представляем обзор свободного браузера Good Bear 1.0 для безопасной работы с веб-сайтами, использующими сертификатные цепочки Минцифры.

Читать далее

Экспорт коллекции API‑запросов в файлы для git — и как мы чуть не отправили токены в открытом виде

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8.4K

Как работать с коллекциями в Http API‑клиенте...

В клиенте уже год как работал экспорт коллекции как патча — одного JSON‑файла с операциями вида upsertRequest / removeRequest / setCollectionMeta. Достаточно, чтобы переслать коллеге точечное изменение: поправил заголовок в одном запросе — экспортировал — коллега применил патч у себя. Рабочая штука для передачи «из рук в руки».

Ниже — история одной конкретной фичи: зачем понадобился «git‑friendly» экспорт коллекции, как устроена стабильная сериализация и разрешение коллизий имён файлов, и какую дыру в защите секретов мы нашли и закрыли по пути. Без сравнений с другими клиентами — только то, что случилось и что мы с этим сделали.

Читать далее

Ближайшие события

«Интернета нет — а сайт работает»: как мы учили PWA замечать авиарежим на iPhone

Время на прочтение8 мин
Охват и читатели7.1K

Мы делаем пет-проект «Чатограмма»: он считает статистику переписки прямо в браузере, файл с перепиской на сервер не уходит. Такое обещание проще всего проверить без чтения политик: включить авиарежим и посмотреть, посчитается ли. Для этого странице нужно ответить на, казалось бы, тривиальный вопрос: есть ли сейчас сеть? На iPhone ответ оказался неожиданным.

Читать далее

10 браузерных API, заменяющих библиотеки, которые я раньше все время устанавливал

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели11K

10 браузерных API, заменяющих пакеты NPM и плагины jQuery: dialog, popover, переходы отображения (view transitions), structuredClone, groupBy и Temporal с заметками о поддержке.

Читать далее

Книга из переписки без сервера: canvas, jsPDF и брошюра для печати прямо в браузере

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.8K

Мы делаем пет‑проект «Чатограмма», который считает статистику переписки: кто пишет первым, кто быстрее отвечает, в какие часы вы на связи. С первого дня у него одно жёсткое правило: файл с перепиской не уходит на сервер. Всё считается в браузере пользователя, а сервер не видит ни одного сообщения — не потому, что обещает не смотреть, а потому, что сообщения до него физически не доходят.

Потом понадобилась подарочная книга: PDF формата A5, где самые яркие моменты переписки собраны по главам — с чего всё началось, первое «мы с тобой», лучшие моменты каждого года, общий словарь, квиз «Кто это написал?». Плюс вариант для печати дома брошюрой: A4, сложить пополам, скрепить степлером.

И здесь правило «ничего на сервер» перестаёт быть бесплатным. Книгу обычно верстают на сервере: headless Chrome, LaTeX, что угодно с нормальными шрифтами и без ограничений по памяти. У нас всё это должно работать на телефоне, в том числе на iPhone, в том числе во встроенном браузере мессенджера. Ниже — как это устроено и на какие грабли мы наступили.

Читать далее

Jev: модель, которая не пишет текст, а принимает решения

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.2K

Последний год я слежу за LLM-шным хайпом, и каждый день появляется что-то новое. На этот раз хочу рассказать про Jev — модель TypeSafe System One.

Заинтересовало: это не очередная LLM, а система с принципиально другой механикой. 

Читать далее

Лёгкие HTTPS-сертификаты на деревьях Меркла

Время на прочтение4 мин
Охват и читатели9.3K

Насколько тяжела и медленна постквантовая криптография? Как станут тормозить мобильные устройства? Эти вопросы пока изучаются, но замедление возможно.

Разработчики Chrome с коллегами из других компаний и экспертами группы PLANTS внедряют первое изменение HTTPS, которое поможет решить постквантовые проблемы производительности. Это компактные [TLS-сертификаты на деревьях

Читать далее

Cookies, которых не видно: partitioned cookies, cookies.txt и одно расширение под три браузера

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели10K

Бывает так: открываете менеджер cookies, удаляете всё для сайта, перезагружаете страницу — а сайт вас по-прежнему узнаёт. Одна из причин в том, что современные браузеры хранят часть cookies в отдельных «разделах», и старые расширения их просто не видят.

Я разбирался с этим, когда переписывал Cookie Quick Manager — популярный менеджер cookies для Firefox (около 45 тысяч пользователей на AMO), который не обновлялся с 2019 года. Результат — CookieTin, открытое расширение для Firefox, Chrome и Edge (GitHub). В статье — что такое partitioned cookies, как их достать через WebExtensions API и на какие грабли я наступил по дороге.

Где прячутся cookies

Переводчик в браузере, который учит слова: встроенный Translator API Chrome, свой ИИ‑ключ и интервальные повторения

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.2K

Было популярное китайское расширение Dadda Translate (达达划词翻译): выделяешь слово, получаешь перевод, сохраняешь в словарик, и слово потом всплывает уведомлением, пока не запомнится. Оно перестало работать: API Sogou и Shanbay, на которых держался перевод, изменились или исчезли. К тому же оно было только для Chrome и только для пары английский → китайский.

Я переписал его с нуля. Получился WordToast для Firefox, Chrome и Edge (GitHub). Он переводит на язык браузера, умеет работать полностью на устройстве и объяснять слово в контексте через ваш собственный ИИ-ключ. В статье расскажу о трёх технических частях:

Как это устроено
1
23 ...