Обновить

Разработка

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

Ваш сайт вам больше не принадлежит: как CVE-2025-11953 отдает ключи хакерам

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

Итак, 5 ноября команда JFrog опубликовала предупреждение об уязвимости CVE-2025-11953 в инструментах командной строки проекта React Native Community CLI. React Native — это платформа которую используют тысячи разработчиков для создания мобильных приложений, которые мы видим в App Store или Google Play. А React Native Community CLI через командную строку предоставляет инструменты для разработки и сборки этих приложений, куда как раз и входил злополучный пакет.

На первый взгляд, это еще один CVE в длинном списке. Но проблема глубже: уязвимость в популярном пакете может затронуть сотни проектов одновременно и ударить не только по продакшену, но и по устройствам разработчиков и CI-пайплайнам.

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

Читать далее

Вы больше не новичок в Git. Повышаем квалификацию с помощью 7 команд

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

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

Читать далее

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

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

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

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

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

Читать далее

Как победить в игре «Быки и коровы» с помощью теории информации

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

Я поступил в институт в 1978 году, когда игра «Быки и коровы» была на пике популярности. В серии игр никто не мог меня победить, а все благодаря относительно несложному алгоритму, разработанному мною на основе теории информации. Изучив современные источники, я не нашел среди них чего-то похожего на мой подход. Поэтому я решил поделиться своей стратегией в блоге ЛАНИТ, чтобы обсудить его с техническим сообществом.

Читать далее

Как In.Plan помог нам с планом

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

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

Объёмный план затрагивает весь производственный цикл: от закупки сырья и управления запасами до отгрузки продукции клиентам и, конечно, включает производство. Все должно быть согласованно, четко подогнано одно к другому и работать как часы. Без крутой ИТ-системы здесь не обойтись.

С 2016 года мы пользовались зарубежным софтом, но система устарела, а обновления стали недоступны. Нам предстояли муки выбора российского решения, инженерные компромиссы и кастомизация. И тут мы первыми в России рискнули сделать ставку на систему объемного планирования In.Plan. Только вот нюанс: решение было облачным, а нам был нужен крепкий on-premise прямо в нашей промышленной инфраструктуре, ну и других требований к кастомизации было миллион.

Читать далее

Что должно быть на каждой PCB с STM32

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

С моей точки зрения большинство разрабатываемых электронных плат работают под управлением микроконтроллера STM32. Если обобщить их схемотехнику, то можно кое-что вынести за скобки. Вот об этом сейчас и поговорим. Что должно быть заложено в каждую электронную плату на основе МК STM32? Само собой надо добавить квадратные первые пины на вилках, шелкографию, тест пады, симметричные отверстия 3мм по краям для крепления платы, удобный USB для питания и т.п. Но есть кое-что еще. Некоторые особенности проектирования PCB применимы только для STM32. Но обо всём по порядку.

Читать далее

Итоги «заблокированного» 2025 года

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

Привет! Это команда AmneziaVPN, и нам есть о чём вспомнить вместе с вами в уходящем 2025 году. Он стал временем непрерывной борьбы VPN-сервисов с цензорами, что привело к технической эволюции с обеих сторон.

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

Читать далее

Как писать нативные игры с OpenGL ES для игровой ретро-консоли Anbernic на C#

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

В этой статье я расскажу, как писать игры для консоли Anbernic средствами OpenGL ES на C# .NET8. Для примера напишу примитивный клон Майнкрафта.

Рендерить

Google убивает открытый веб

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

Несколько месяцев назад я писал о прокси-войне, которую Google ведёт против открытого веба при помощи XSLT. Совершенно неудивительно, что Google продолжает продвигать отказ от него, по-прежнему не давая никаких весомых причин, за исключением «мы наживались на FLOSS-библиотеке, в которой наконец нашли достаточное количество багов безопасности, чтобы это служило оправданием». Компания не объяснила, почему решила не устранять проблемы в самой библиотеке или использовать более современную библиотеку, написанную на безопасном языке, воспользовавшись возможностью проапгрейдить поддержку XSLT до более свежей, мощной и простой версии стандарта.

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

Читать далее

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

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

Я — системный аналитик. Но долгое время я не применяла системное мышление к себе, я проектировала архитектуры, создавала диаграммы, детализировала процессы и уточняла требования... Но когда речь заходила о моей собственной карьере, я ощущала растерянность. Меня мучил вопрос: «К кому мне подойти, чтобы расти профессионально?»

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

Читать далее

Москву сжали до 93 МБ. Новый формат данных OpenStreetMap

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

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

В октябре 2025 года разработчики представили новый формат хранения данных GOB («Geo-Object Bundle», пакет геообъектов). Это вспомогательный формат для библиотеки GOL (Geo-Object Library), которая была раньше. В новом формате реализовано сжатие zlib и другие оптимизации, что позволило существенно уменьшить размер файлов, скорость загрузки и обработки карт. Работа с нашей Землёй стала гораздо быстрее, если можно так сказать.

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

Читать далее

Китай украл и развернул технологию литографа, способного производить 2-нм чипы

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

Но пока потенциально: разбираем журналистское расследование от Reuters о секретном проекте КНР. Второй материал из цикла торговой войны между США и Китаем.

Читать далее

Игрушка на елку к Новому году

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

Приветствую, Хабр!

Перед Новым годом для поднятия настроения до праздничного, захотелось сделать что-то необычное и новое. Все мы украшаем елку, ставим на вершину звезду, вешаем на ветки игрушки и ждем Деда Мороза. Женя, 41 годик.

Читать далее

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

Разбираемся с новой мощной платой Orange Pi 6 Plus на базе Armv9 Cix P1 CD8160

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

Компания Shenzhen Xunlong Software выпустила новую open-source плату на базе 12-ядерного высокопроизводительного процессора Armv9 Cix P1 CD8160. Плата предыдущего поколения Orange PI 5 построена на Rockchip RK3588. Новый процессор Cix P1 состоит из 8 ядер Cortex‑A720 и 4-х Cortex‑A520, и обещает прирост производительности на 300% по сравнению с последним Rockchip RK3588. Ядро Cortex‑A720 было впервые представлено публике в 2023 году и через два года уже готова плата на новых процессорных ядрах. Из коробки работает UEFI/TianoCore EDK II (ED2) с запуском Debian, Android, Windows 11. Под катом разберемся с новой архитектурой Armv9, рассмотрим процессор Cix P1, оценим производительность новой платы и сравним с предыдущим поколением, платой Orange PI 5 Plus.

Читать далее

Архитектурный квиз: костыль или элегантное решение?

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

Отказоустойчивый и масштабируемый энтерпрайз невозможно спроектировать по книжкам. Одно и то же решение может фигурировать и в best, и в bad practice — и, что забавно, иногда переходит из одного списка в другой. Ещё недавно монолиты считались злом, а теперь снова в моде.

Хотите посмотреть, как знакомые паттерны ведут себя в реальном контексте?

Чтобы показать это на практике, я собрала три инженерных кейса. Каждый оформлен в формате детективного квиза: роль, фабула, вопросы на размышление, разбор и выводы. Попробуйте разобраться в проблеме, пройти тест и определить: где костыль, где инженерный компромисс, а где — настоящая best practice.

Читать далее

Под капотом платежей: чем отличаются ПС «Мир» и СБП

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

В этой статье расскажем, чем отличаются ПС «Мир» и СБП и почему именно вместе эти системы делают безналичные расчёты удобными, надёжными и доступными каждому.

Читать далее

Всё, что нужно знать про аллокаторы в Rust (и как написать свой)

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

Мне в Rust всегда заходила одна штука. Он довольно быстро приучает не держать в голове мусор из серии «а я точно это освободил??». Большая часть рутины с памятью уезжает в автоматизм языка, и ты можно прям выдохнуть и думать про данные и инварианты, а не про то, где у тебя очередной free потерялся.

Но. Как только начинаешь копать чуть глубже, выясняется, что у Rust есть вполне конкретная рука, которая раздаёт память под все эти Box::new(42), Vec::push и растущие String. Имя этой руке простое: аллокатор. Он отвечает за то, что происходит в куче, и именно через него проходят почти все интересные истории про производительность и поведение памяти.

Читать далее

Раз, два, три — ёлочка, ГОРИ

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

«А давайте вы сделаете какой-нибудь новогодний рисёч?» — примерно такую задачу поставили нашей Positive Labs этим летом. Поскольку мы любим изучать разнообразные железки, первым делом подумали про умные устройства. А что у нас с Новым Годом обычно ассоциируется? Правильно — новогодняя ёлка. Быстрый поиск в сети показал, что smart-ёлки существуют, и даже не от дядюшки Ляо, а вполне себе серьезной компании. На том и порешили — берем Twinkly Light Tree и смотрим, что там с безопасностью.

Так что же там с безопасностью?

Эпоха «белых списков»: почему ваши конфиги в декабре 2025 года начали превращаться в тыкву, и что нас ждет…

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

Всем привет, декабрь 2025-го принес нам не только предновогоднюю суету, но и явное ощущение того, что гайки закручиваются на новый уровень. Если раньше блокировки напоминали стрельбу по площадям, то сейчас мы видим признаки внедрения концепции Default Deny (запрещено всё, что не разрешено). Пока это не тотальный «белый список» на всю страну, но в отдельных регионах и на мобильных сетях тенденция налицо: если твой трафик не похож на типичный поход за хлебом в Яндекс или ВК, то с большой вероятностью он будет придушен

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

Картина вырисовывается интересная и местами печальная:

Читать далее

JavaScript: заметка об Invoker Commands API

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

Привет, друзья!

В этой небольшой статье я хочу рассказать вам о новом Web API - Invoker Commands.

Invoker Commands API позволяет декларативно управлять поведением некоторых интерактивных элементов с помощью кнопок. "Декларативно" означает, что управления элементами осуществляется только с помощью HTML, без JavaScript.

На сегодняшний день этот API поддерживается всеми основными браузерами (в Safari пока только в качестве экспериментальной возможности).

Читать далее