Для подписчиковСегодня будем эксплуатировать домен FreeIPA и пройдем полную цепочку, начиная с атаки на сайт. Проэксплуатируем инъекцию Cypher, затем обойдем проверку Passkey на сайте и получим RCE через сервис Kafka. Проведем разведку на хосте, затем успешный фишинг и многое другое.
Исследователи из компании SentinelOne обнаружили ранее неизвестный фреймворк для промышленного саботажа, датированный 2005 годом (за пять лет до появления Stuxnet). Вредонос получил кодовое название fast16 и предназначался для незаметной подмены результатов в высокоточном инженерном и научном ПО.
Не так давно в отдельной статье я описывал опыт построения примитивной ERP-lite системы, ориентированной на малый бизнес РФ. В общем виде были проговорены основные архитектурные и доменные проблемы, с решением которых возникли трудности в процессе реализации, в том числе изоляции данных организаций-тенантов, миграции схем и проблема ограничения доступов в рамках конкретной компании (и ещё 7 ключевых тем - в моей терминологии именуемые кругами ада).Причина, по которой написана уже эта статья, до…
Я пять лет писал на .NET, и там у меня сложилась привычка держать доменную модель отдельно от инфраструктуры хранения. Repository pattern — не как догма из книги Фаулера, а как рабочий способ не тащить DbContext, маппинги и названия колонок в сущности. Домен остаётся доменом. Когда я перешёл на Go, меня сразу царапнули struct tags. Большинство библиотек работы с БД ожидает примерно такое:type User struct { ID uuid.UUID `db:"id"` Email string `db:"email"` Age …
Часто про Go говорят: «это язык, где конкурентность почти бесплатная».И знаете что? Это правда. Почти.Но «почти» — это самое опасное во всей истории, так как либо ты управляешь системой, либо она управляет тобой руками runtime'а.В трёх статьях я разберу путь, через который проходит почти каждый Go-разработчик от наивного «я добавил go — получил параллельность», до взрослого «я проектирую concurrency-систему с понятными границами».Погнали.Иллюзия первая: «Горутины дешёвые — значит можно скол…
Хочу рассказать о генераторе GLSL-кода для WebGL, позволяющем писать шейдеры буквально на JavaScript с некоторыми условностями, используя все удобства IDE, такие как рефакторинг, подсветка синтаксиса, автокомплит и проверка на ошибки, а в математических выражениях использовать обычные JS операторы: +, -, *, /, =, +=, -=, *=, /=, ++, --.Сразу приведу пример рабочего кода, чтобы было понятно, о чем идет речь:class VertexShader extends Shader { constructor(POSITION, NORMAL, TANGENT, NORMAL_MATRI…
b0w9rПривет, Хабр. Я b0w9r.Полтора года назад мои знания в разработке находились на отметке 0.00. Кто-то из вас, возможно, помнит мою историю: я начинал учить HTML и CSS, выписывая теги ручкой в тетрадь, потому что у меня не было ни ноутбука, ни компьютера.Я всё ещё иду по следам программирования, но недавно я сделал важный шаг — всего за 1 месяц я собрал и выкатил свой первый продукт: FocusMind (локальный рабочий хаб с Pomodoro, задачами и заметками).Оглядываясь на эти полтора года и этот безу…
У меня был проект, где один Next.js сайт обслуживал несколько доменов, и возникла задача - эффективно кешировать страницы, чтобы не пересоздавать их каждый раз. Сначала я попробовал внедрить кеширование через Redis: я написал хендлер, подключил его, но вскоре обнаружил, что Redis потребляет колоссальный объём оперативной памяти - порядка 100 ГБ, и это при том, что ещё не все запросы были закешированы. Тогда я решил поискать другой подход и обратил внимание на PVC - общее хранилище, которое могл…
ВступлениеВ этой статье я хочу показать, как на практике писать изоляционные UI-автотесты без флаков, стендов и бесконечной боли с окружением. Тема кажется противоречивой — UI-тесты традиционно считают самыми хрупкими и медленными — но на практике вокруг неё куда больше мифов, чем реальных ограничений.Самое важное — такие UI-тесты не сложные. Они выглядят максимально просто, запускаются быстро и при этом дают высокую стабильность. Я бы даже сказал, что это эталон современного подхода к UI-автом…