xaker
HTB Sorcery. Захватываем домен FreeIPA

Для подписчиковСегодня будем эксплуатировать домен FreeIPA и пройдем полную цепочку, начиная с атаки на сайт. Проэксплуатируем инъекцию Cypher, затем обойдем проверку Passkey на сайте и получим RCE через сервис Kafka. Проведем разведку на хосте, затем успешный фишинг и многое другое.

  • вторник, 28 апреля 2026 г. в 00:00:24
xaker
Малварь fast16 существовала до появления червя Stuxnet

Исследователи из компании SentinelOne обнаружили ранее неизвестный фреймворк для промышленного саботажа, датированный 2005 годом (за пять лет до появления Stuxnet). Вредонос получил кодовое название fast16 и предназначался для незаметной подмены результатов в высокоточном инженерном и научном ПО.

  • вторник, 28 апреля 2026 г. в 00:00:21
golang
Почему RBAC недостаточно: опыт построения тарифно-зависимой системы доступа в SaaS или о чём молчат…

Не так давно в отдельной статье я описывал опыт построения примитивной ERP-lite системы, ориентированной на малый бизнес РФ. В общем виде были проговорены основные архитектурные и доменные проблемы, с решением которых возникли трудности в процессе реализации, в том числе изоляции данных организаций-тенантов, миграции схем и проблема ограничения доступов в рамках конкретной компании (и ещё 7 ключевых тем - в моей терминологии именуемые кругами ада).Причина, по которой написана уже эта статья, до…

  • вторник, 28 апреля 2026 г. в 00:00:18
golang
gerpo: repository pattern для Go через указатели, без struct tags и кодогенерации

Я пять лет писал на .NET, и там у меня сложилась привычка держать доменную модель отдельно от инфраструктуры хранения. Repository pattern — не как догма из книги Фаулера, а как рабочий способ не тащить DbContext, маппинги и названия колонок в сущности. Домен остаётся доменом. Когда я перешёл на Go, меня сразу царапнули struct tags. Большинство библиотек работы с БД ожидает примерно такое:type User struct { ID uuid.UUID `db:"id"` Email string `db:"email"` Age …

  • вторник, 28 апреля 2026 г. в 00:00:16
golang
Почему Go-сервисы начинают тормозить без ошибок (и при чём тут goroutines). Часть 1

Часто про Go говорят: «это язык, где конкурентность почти бесплатная».И знаете что? Это правда. Почти.Но «почти» — это самое опасное во всей истории, так как либо ты управляешь системой, либо она управляет тобой руками runtime'а.В трёх статьях я разберу путь, через который проходит почти каждый Go-разработчик от наивного «я добавил go — получил параллельность», до взрослого «я проектирую concurrency-систему с понятными границами».Погнали.Иллюзия первая: «Горутины дешёвые — значит можно скол…

  • вторник, 28 апреля 2026 г. в 00:00:16
javascript
JavaScript Shader Language или JSSL

Хочу рассказать о генераторе GLSL-кода для WebGL, позволяющем писать шейдеры буквально на JavaScript с некоторыми условностями, используя все удобства IDE, такие как рефакторинг, подсветка синтаксиса, автокомплит и проверка на ошибки, а в математических выражениях использовать обычные JS операторы: +, -, *, /, =, +=, -=, *=, /=, ++, --.Сразу приведу пример рабочего кода, чтобы было понятно, о чем идет речь:class VertexShader extends Shader { constructor(POSITION, NORMAL, TANGENT, NORMAL_MATRI…

  • вторник, 28 апреля 2026 г. в 00:00:14
javascript
Иди слепо к своей цели, но будь готов упасть лицом в грязь

b0w9rПривет, Хабр. Я b0w9r.Полтора года назад мои знания в разработке находились на отметке 0.00. Кто-то из вас, возможно, помнит мою историю: я начинал учить HTML и CSS, выписывая теги ручкой в тетрадь, потому что у меня не было ни ноутбука, ни компьютера.Я всё ещё иду по следам программирования, но недавно я сделал важный шаг — всего за 1 месяц я собрал и выкатил свой первый продукт: FocusMind (локальный рабочий хаб с Pomodoro, задачами и заметками).Оглядываясь на эти полтора года и этот безу…

  • вторник, 28 апреля 2026 г. в 00:00:12
javascript
Как я построил кеш страниц для многодоменного проекта с помощью PVC и кастомного подхода

У меня был проект, где один Next.js сайт обслуживал несколько доменов, и возникла задача - эффективно кешировать страницы, чтобы не пересоздавать их каждый раз. Сначала я попробовал внедрить кеширование через Redis: я написал хендлер, подключил его, но вскоре обнаружил, что Redis потребляет колоссальный объём оперативной памяти - порядка 100 ГБ, и это при том, что ещё не все запросы были закешированы. Тогда я решил поискать другой подход и обратил внимание на PVC - общее хранилище, которое могл…

  • вторник, 28 апреля 2026 г. в 00:00:10
javascript
Пишем быстрые UI-автотесты без флаков, стендов и боли: изоляционный подход в CI/CD

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

  • вторник, 28 апреля 2026 г. в 00:00:09