xaker
HTB Conversor. Разбираемся с XSLT-инъекцией

Для подписчиковXSLT-инъекции — редкий, но крайне опасный класс уязвимостей. Найдя их, злоумышленник может использовать особенности обработки XML и XSLT, чтобы читать и записывать файлы на сервере или добиться выполнения кода. В этом разборе покажем, как такая уязвимость позволяет полностью скомпрометировать систему.

  • вторник, 24 марта 2026 г. в 00:00:09
xaker
Сканер Trivy взломан в ходе атаки на цепочку поставок

Хакеры внедрили инфостилер в популярный сканер уязвимостей Trivy, подменив почти все теги GitHub Actions и опубликовав вредоносный релиз. Малварь похищала секреты из CI/CD-пайплайнов и с машин разработчиков, шифровала данные и отправляла на управляющий сервер.

  • вторник, 24 марта 2026 г. в 00:00:09
golang
Тоталитарный Golang

Всем привет! Сегодня я попробую вас убедить, что уникальным торговым предложением языка Go являются не горутины, скорость, минималистичность или современность, а "тоталитарность". Что?Преимуществами Go называют скорость, производительность, многопоточность, современность и удобность в микросервисах (чтобы это ни значило), и часто эти свойства выделяются как что-то уникальное.Но разве в Java нет горутин? Разве Python какой-то старый? Разве Rust не быстрее? Мои коллеги не правы, потому чт…

  • вторник, 24 марта 2026 г. в 00:00:07
javascript
Как экспортировать плейлист из Яндекс Музыки за 10 секунд

Иногда хочется выгрузить список треков из плейлиста Яндекс Музыки — например чтобы:сохранить треклистперенести музыку в другой сервиссделать бэкаппроанализировать плейлистЕщё одна причина — версии треков. Иногда в каталоге Яндекс Музыки встречаются отредактированные версии песен (например, с запиканной ненормативной лексикой или изменёнными строками). Поэтому бывает полезно сохранить исходный список треков из плейлиста, чтобы при необходимости найти оригинальные версии композиций в других серви…

  • вторник, 24 марта 2026 г. в 00:00:05
javascript
Capacitor: от веба к мобильным приложениям. Часть 3. OTA обновления в обход сторов

Примерно год назад я написал статью о том, как настроить OTA-обновления в Capacitor-приложении с помощью capacitor-updater. Подход работал, но со временем код стал разрастаться в одном компоненте и превратился в ту самую "кашу", с которой обычно начинают, а потом рефакторят. В этой статье еще раз разберем механизм обновления, и как я переписал систему обновлений с нуля — с нормальной архитектурой, двумя стратегиями обновления и отдельным слоем для работы с GitHub Releases.Зачем это нужн…

  • вторник, 24 марта 2026 г. в 00:00:04
javascript
Три причины раздувания JavaScript

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

  • вторник, 24 марта 2026 г. в 00:00:03
javascript
AbortController в Node.js: отмена чего угодно

Привет, Хабр!У Node.js исторически была проблема с отменой операций. Запустил HTTP‑запрос — жди, пока не ответит или не упадёт по таймауту. Читаешь огромный файл — читай до конца. Запустил пачку промисов — сиди, смотри, как они доедают ресурсы. Механизма сказать «стоп, хватит» в языке просто не было. Кто‑то мастерил свои костыли на флагах, кто‑то использовал библиотеки вроде p-cancelable, но единого стандарта не существовало.AbortController эту проблему решает. Пришёл он из браузерного API (там…

  • вторник, 24 марта 2026 г. в 00:00:02
github
kepano / obsidian-skills

Agent skills for Obsidian. Teach your agent to use Markdown, Bases, JSON Canvas, and use the CLI.Agent Skills for use with Obsidian. These skills follow the Agent Skills specification so they can be used by any skills-compatible agent, including Claude Code and Codex CLI. Installation Marketplace /plugin marketplace add kepano/obsidian-skills /plugin install obsidian@obsidian-skills npx skills npx skills add git@github.com:kepano/obsidian-skills.git Manually Claude Code Add the contents of th…

  • вторник, 24 марта 2026 г. в 00:00:01
golang
Когда нейросети общаются сами: эксперимент с диалогом двух LLM и графическая утилита на Go

Всем привет! Что будет, если задать двум LLM моделям одну тему и позволить вести диалог без участия человека? Я написал небольшую программу на Go, которая делает это автоматически. Рассказываю как она устроена и почему она может пригодиться каждому, кто работает с Ollama. Один интерфейс для двух моделейПрограмма представляет собой графическое приложение на Fyne. В верхней левой части окна настройка диалога. Выбираем две модели из списка, который программа получает командой ollama list. Можно за…

  • понедельник, 23 марта 2026 г. в 00:00:36