Обновить
29.47

Google Chrome

Браузер от Gooogle

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

Как я нашёл уязвимость в JavaScript-движке, или Почему корень из нуля чуть не сломал браузеры

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

Сколько будет корень из нуля? Даже школьник ответит не задумываясь: ноль. Но если задать этот вопрос JIT‑компилятору Maglev внутри движка V8, то при определённых обстоятельствах он сначала скажет: «ноль», а потом решит сэкономить на проверке безопасности и отдаст злоумышленнику доступ к памяти браузера.

Меня зовут Паша Кузьмин, я занимаюсь практической безопасностью Яндекс Браузера и проекта Chromium. В нашей команде мы регулярно разбираем уязвимости и исследуем методы атак — чтобы защищать пользователей до того, как их атакуют злоумышленники. Сегодня расскажу про CVE-2025-9864 — уязвимость, которую я нашёл в движке V8.

Это история о том, как безобидный Math.sqrt(0) превращается в use‑after‑free, а затем в произвольное чтение и запись памяти. Разберём проблему по шагам: от теории до работающего эксплойта.

Читать далее

Новости

Как получить Featured badge в Chrome Web Store и удвоить установки (достаточно просто попросить)

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

Я попросил отметить расширение Highlighter Extension рекомендованным, и этого оказалось достаточно!

Ежедневные установки примерно удвоились, ну может, увеличились в полтора раза. Весь процесс занял 2–3 дня (люди пишут, что бывает от нескольких дней до месяца).

Читать далее

11 полезных фичей Chrome DevTools часть 2

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

Всем привет!

Пока из каждого утюга рассказывают о различных ИИ-инструментах, агентах и прочих радостях упрощающих жизнь, я хочу рассказать о 11 незаслуженно потерянных фичах в недрах Chrome Devtools. Про фишки ИИ в DevTools рассказывать не вижу смысла, так как в нашем регионе они пока не работают.

Кстати, первая часть тут - тык.

Погнали!

Погнали!

Document PiP vs window.open

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

Всем привет! Меня зовут Максим Иванов. Сегодня я хотел бы провести небольшой исторический экскурс и объяснить, почему Document Picture-in-Picture — это не просто способ отображать видео в формате «картинка в картинке», а новое и любопытное API, которое потенциально может заменить привычный всем window.open.

Возможность выводить видео в режиме PiP появилась еще в сентябре 2018 года в Chrome 69. С тех пор прошло более семи лет активного тестирования и развития. В 2019 году подобный механизм появился в Safari, а к 2020-му — и в Firefox.

Теперь, когда почти каждый браузер умеет открывать видео в отдельном плавающем окне, возникает логичный вопрос: могут ли браузеры с той же легкостью открывать в отдельном окне интерактивный HTML-контент, а не только видео? И если да, то каким образом? Давайте поговорим об этом ниже.

Читать далее

Создание браузерного расширения с native messaging на C#

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

Привет, Хабр. Меня зовут Алексей, я бэкенд-разработчик C#. Хочу рассказать о том как я узнал что такое native messaging в браузерах и какие задачи можно с его помощью решать. В одном проекте я разрабатывал десктопную утилиту, которая должна была уметь обмениваться сообщениями с веб-страницами в браузере, чтобы в том числе управлять их содержимым и как угодно взаимодействовать с ними. Расскажу о том, как удалось решить такую задачу и покажу результат работы небольшого приложения с таким взаимодействием.

Читать далее

Chrome, Xfce и очень страшное кино

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

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

Читать далее

Обзор новых возможностей CSS в Safari 26

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

Команда JavaScript for Devs подготовила перевод большого разбора новых CSS-возможностей, появившихся в Safari 26. Это, пожалуй, один из самых заметных релизов браузера за последние годы: поддержка anchor positioning, анимаций, зависящих от прокрутки, функции progress(), улучшенное абсолютное выравнивание, contrast-color() и даже «красивые» переносы текста.

Читать далее

Как скачать файл по HTTPS/HTTP с произвольным ограничением скорости

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

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

Читать далее

Защита от мошенников: как я написал MVP версию сервиса для защиты от скама и мошенничества через Telegram

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

На дворе уже ноябрь 2025 года, за окном нашей необъятной во многих городах и селах, уже наступила зима, но в инфополе ярко полыхаент схема «купи квартиру, отдай обратно продавец заскамлен был — неведал что творил».

На фоне этих «интересных» событий мне стало интересно изучить техническую сторону того, как это происходит. Анализ множества видео с красно‑белого видеохостинга показал, что залог успешно обмана это момент когда мошенник контролирует ПК или телефон жертвы, заставив ее включить видеозвонок в месенджере или установив специальную программу на устройство.

Читать далее

Автоматически скрываем лишние истории в VK: простой браузерный скрипт

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

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

При этом удалять всех подряд из друзей не хочется, потому что сеть полезна для проектов и продвижения.

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

Скрипт запускается из консоли, продолжает работать даже в неактивной вкладке и доступен в открытом репозитории.

GitHub

Читать далее

Как ускорить WebView в Android и доказать это цифрами

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

Как приручить WebView: пререндерим экраны заранее (AndroidX WebKit prerenderUrlAsync), меряем не ощущения, а TTVR — время до визуальной готовности — лёгким offscreen-детектором, шлём метрики в Grafana. Внутри — когда и что пререндерить, таймауты/отмена, cookie-политика и готовые сниппеты. На проде — до 2.5× быстрее и меньше «белых экранов».

Читать далее

Как правильно гуглить: простые приёмы для точного поиска

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

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

Читать далее

Нейросеть — это хорошо, но дайте выбор. Как я убрал «Алису» из поиска Яндекса

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

Привет, Хабр! Нейросети стремительно входят в нашу жизнь, и вот уже Яндекс встроил свою «Алису» прямо в поисковую выдачу. Иногда это удобно, но часто хочется видеть классический список ссылок, а не огромный блок сгенерированного текста, который отодвигает всё остальное вниз.

Я решил вернуть себе контроль над поиском и написал простое браузерное расширение, которое убирает всё лишнее, например когда пишешь олимпиаду с проктором. Назвал его «Bye Bye Alice AI». В этой короткой статье я покажу, как оно устроено.

Читать далее

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

Хромбук. Ограничение зарядки

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

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

По идее, Хромбуки имеют алгоритм, который ограничивает зарядку аккумулятора на 80%, если устройство работает от сети. Делается это для продления жизни этого самого аккумулятора. 

Но в тех Хромбуках, которые были у меня в пользовании это никогда не работало, и при работе от сети аккумулятор всегда заряжался до 100%. Я искал программы, чтобы исправить это упущение, но системой ограничено вмешательство в этот процесс, и ни одной программы мне найти не удалось. 

Вот как эту проблему можно решить через флаги. В браузере Хромбука (а это по определению браузер Хром) набираем команду chrome://flags и попадаем в большое меню флагов.

Читать далее

Почему Google Переводчик «ломает» React (и другие веб-приложения)

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

Команда JavaScript for Devs подготовила перевод статьи о том, почему Google Переводчик может ломать React и другие современные веб-приложения. Причина в том, что расширение вмешивается в DOM, нарушая работу виртуального DOM и вызывая ошибки вроде removeChild и insertBefore. Автор показывает реальные кейсы, обходные пути и поднимает важный вопрос: имеет ли фреймворк право на полный контроль над DOM?

Читать далее

Чем вообще занимается человечество?

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

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

в github, vscode и windows абсолютно каждое обновление уже несколько лет связано только с "ИИ", при этом ни один реальный показатель этих программ не стал лучше. В каждый поисковой запрос встроен ИИ, а качество поиска в гугле стало хуже (считал ли кто-то, сколько электричества ушло на это?)

Компилятор go переписывают на go, JavaScript существует больше 20 лет, появился TypeScript, но он... Всё также компилируется в обычный JavaScript, даже более объёмный, чем написанный вручную. До сих пор все оптимизации передачи джаваскрипта по сети не пошли дальше удаления пробелов из исходного текста, хотя на поверхности лежит трансляция TypeScript в бинарный JS, который позже напрямую быстрее интерпретируется и тратит в разы меньше сетевого трафика

Недавно я зашёл в браузер хром и решил поискать небольшую фразу в довольно объёмном файле.

Читать далее

Fookie — расширение, которое избавит вас от боли с feature-флагами на cookies

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

## Всем привет!

В этой статье я хочу рассказать о небольшой расширении, которое упрощает хранение и использование feature toggles, работающих через cookie.

Наши фича-тоглы работают по принципу указания ключа и значения в cookie. Однако при тестировании (и не только) возникает несколько болей:

* Количество тоглов уже перевалило за сотню, и хранятся они в Confluence. Постоянно ходить туда или держать их названия в голове — то ещё удовольствие.

* Тестирование на фичевых ветках осложняется тем, что из-за разных доменов UI и API невозможно авторизоваться: cookie не проставляются автоматически. Чтобы их добавить, приходится заходить на мастер-ветку, брать оттуда cookie и вручную подменять домен. Не страшно, если речь идёт об одной-двух куках, но когда их больше десяти — это уже боль.

* Просмотр результата на проде тоже не всегда прост: фича-маппер не позволит просто так поменять значение cookie и вернёт исходное.

Чтобы упростить жизнь, был создали Fookie — инструмент, который позволяет хранить, выгружать, загружать, добавлять, удалять cookie и многое другое.

Разберём всё по порядку 👇

---

### Как появилась идея

Изначально задумывалось, что Fookie будет хранить информацию о feature-флагах и менять домены.

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

Первая версия Fookie была неказистая, но рабочая — а это главное. Уже тогда можно было:

Читать далее

Придумал расширение для Chrome и устранил шахматных читеров

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

Поисковая выдача по запросу «chrome extension for cheating in chess» переполнена. Инструментов для нечестной игры — десятки.

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

Удивительный дисбаланс, не правда ли?

Обо всем по порядку

Динамические списки: использование в разработке (часть 2)

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

Динамические списки использование в разработке редактирования документов выпуска продукции в ERP (часть2)

Читать далее

Патчим Chrome «на лету» для работы с YouTube (вторая часть)

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

Салют, Хабр! В предыдущей статье "Патчим Chrome для работы с YouTube" заменой всего 8 байт в файле chrome.dll мы добились работоспособности YouTube, правда работает это не у всех, но у многих. Теперь напишем программу, которая ищет непропатченный процесс Chrome в ОЗУ компьютера и меняет его прямо "на лету". Права администратора при этом не требуются.

За основу возьмём проект https://github.com/glmcdona/Process-Dump/releases/tag/v2.1.1 который умеет дампить любой процесс на диск. Для этого запустим Chrome и сдампим на диск с использованием утилиты pd64.exe из этого проекта.

Читать далее
1
23 ...

Вклад авторов