Рубрика «npm»

3 ноября Binance опубликовала первый отчёт о взломе 29 октября, в котором пострадали активы примерно на $6,34 млрд. Цепочка началась с заражённой установки Homebrew, найденной через поисковик, и фейкового собеседования с тестовым заданием. Разбираю, что известно об атаке, где в тестовых прячут вредоносный код, и даю два чек-листа: для разработчика и для компании.


Что известно на сегодня

Главный источник — отчёт Binance «29 October Binance Security Incident: Initial Findings and Response Update» в X (3 ноября 2026, 14:33 UTC). Отчёт предварительный, расследование продолжается, часть технических деталей Binance не раскрывает. Ниже только подтверждённое.

Цифры.Читать полностью »

Знакомый жанр новостей, правда? В популярный пакет или action подсунули вредоносный код, и все бегут проверять свои сборки. Таких историй за полтора года набралось как минимум три. В марте 2025 года у tj-actions/changed-files перенаправили теги на коммит, который печатал секреты прямо в лог сборки. 31 марта 2026 года в npm на несколько часов попали вредоносные axios@1.14.1 и axios@0.30.4: они тянули зависимость plain-crypto-js со скриптом postinstallЧитать полностью »

Когда пакет тебе выбирает нейронка

На прошлой неделе я попросил Claude Code добавить рендеринг markdown в проект. Через секунду в зависимостях появился flutter_markdown, нормальный пакет от flutter.dev. Я нажал accept. А потом случайно открыл его карточку, а там прямо в шапке:

This project has been discontinued, and will not receive further updates.

Пакет уже больше года как мёртв, есть преемник: flutter_markdown_plus. Просто в обучающих данных агента он всё ещё живой.

Читать полностью »

Введение

Год назад я строил real-time слой для AI SaaS-платформы. Корпоративные клиенты, AI-чаты со стримингом ответов, несколько вкладок открытых одновременно — типичный сценарий для подобного продукта.

Выбор пал на SSE: в отличие от WebSocket, SSE работает поверх обычного HTTP, хорошо дружит с прокси и балансировщиками, и для однонаправленного стриминга от сервера к клиенту это достаточно.

Нативный EventSource подключил быстро. Потом начались проблемы.

Первая — авторизация. EventSourceЧитать полностью »

jscpd-rs: быстрый поиск дублей в коде

jscpd-rs: быстрый поиск дублей в коде

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

Читать полностью »

Эта история началась с обычного git push.

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

Я хочу рассказать это на реальном примере, потому что такие истории обычно кажутся чем-то далеким: «ну это где-то в крупных компаниях», «ну это у тех, кто скачивает странные файлы», «ну я-то опытный разработчик, я замечу».

Читать полностью »

Пришла мне как-то идея сделать мобильное приложение на базе Telegram. Полез в npm и сразу нашёл react-native-telegram, но это оказалась обёртка над Bot API и тут я понял, что будет весело.

У Telegram с инструментами для разработчиков в целом нормально — Bot API, MTProto, TDLib. Только под RN ничего нет и вряд ли когда-то будет, насколько я знаю уже есть популярные Telegram-клиенты на React-Native, но видимо они не стали упаковывать это в библиотеку и делиться опытом с народом.

Читать полностью »

Утекли исходники Claude Code - 1

Весь исходный код Claude Code утёк через sourcemap в npm. Давайте разберёмся.

Где найти?

Выкладывание закрытых проприетарных исходников может жёстко караться GitHub. Поэтому я их мгновенно переложил на GitVerse в свою организацию Anarchic, пока то репо не забанили на GitHub по DMCA.

Читать полностью »

Как перенести Ghost CMS на vps с панелью FASTPANEL

Как перенести Ghost CMS на vps с панелью FASTPANEL

Появилась необходимость перенести уже установленный ghost cms на другой vps, на котором уже установлена FASTPANEL. Вдохновившись статьей "Установка Ghost на сервер под управлением ispmanagerЧитать полностью »

Привет! Хочу рассказать о своей библиотеке hq-cropper — инструменте для обрезки изображений на чистом TypeScript без единой зависимости.

Когда искал cropper для своего проекта, столкнулся с двумя проблемами. Во-первых, большинство популярных решений тянут за собой кучу зависимостей и весят 100+ KB. Во-вторых, мало кто работает с большими изображениями.

Решил написать своё решение: лёгкое, без зависимостей, с умным алгоритмом масштабирования.

Проблема больших изображений

Ситуация: пользователь загружает фото 4000×3000 пикселей, а вам нужен аватар 200×200. Большинство кропперов справляются с этим плохо:


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js