Для подписчиковЕсли sudo разрешает запускать Python-скрипт от root, опасность может скрываться не в самом скрипте, а в том, какие каталоги он подключает. В этой статье посмотрим, как writable-директория с плагинами дает повышение привилегий.
Исследователи из ИБ-стартапа Gambit обнаружили вредоносную кампанию, нацеленную на интернет-магазины. По словам специалистов, неизвестный злоумышленник практически полностью автоматизировал свои атаки с помощью ИИ-агентов. Так, с июля 2026 года хакер успел атаковать сотни целей, похитить данные более 600 000 банковских карт и внедрить веб-скиммеры как минимум на 119 сайтов.
Так уж вышло, что я до сих пор не могу выбрать лучший способ для работы с транзакциями. Поэтому я решил написать эту обзорную статью. Я разберу все известные мне паттерны для работы с транзакциями и постараюсь выбрать лучший.ВводныеРассмотрим самый дефолтный проект с любой реляционной БД. У проекта есть две сущности — пользователи и заказы. Каждая сущность хранится в своей таблице. Мы пытаемся (насколько это возможно) не мешать слой БД со слоем бизнес‑логики и стараемся писать поддерживаемый и …
Когда проектируешь обычный backend, fallback обычно воспринимается как довольно понятный механизм.Есть основной upstream. Если он недоступен, переключаемся на резервный. Если один pod умер, запрос обслужит другой. Если один PostgreSQL read replica недоступен, читаем с другой. Если основной endpoint партнёра отвечает ошибкой, можно попробовать резервный.В большинстве таких случаев мы предполагаем, что резервный исполнитель реализует тот же контракт.С LLM это предположение начинает ломаться.Две м…
Это вторая версия статьи (первую модератор удалил, причину мне не сообщили. Что ж, пишу заново: без ссылок на свои каналы, зато с тем, что за эту неделю изменилось в проекте). Буду рад, если на этот раз текст останется на сайте.s57-parser: морская карта S-57 в браузереКоротко о чём речь. Электронные навигационные карты (ENC) формата S-57 стоят на каждом коммерческом судне. Стандарт живёт с 1996 года, но живого JavaScript-парсера для него я не нашёл: либо серверный GDAL, либо коммерческие SDK за…
Хочу посвятить эту статью погружению в разные возможности обновления данных в JS и React, раскрыв это на примере своей библиотеки «nexus‑state». Поделюсь подробными примерами, мотивацией и расскажу, для чего вообще нужны стейт‑менеджеры и как они работают. При написании примеров я постараюсь максимально просто объяснить суть и не буду затрагивать тему типизации.ВступлениеИдея названия пришла внезапно. Пройдя все серии одной из моих любимых игр,«Dark Souls», я наткнулся на ранний проект «Demon&#…
Я сделал бесплатную проверку сайтов на нарушения 152-ФЗ: вводишь адрес, получаешь список проблем. Первая версия умела ещё кое-что, чего я в неё не закладывал. Подставляешь чужой хост и порт, и по тексту ошибки видно, открыт порт или закрыт. Бесплатный сканер портов для всего интернета, причём запросы идут с адресов Cloudflare.Это одна из трёх дыр, которые автоматическое ревью нашло в первой версии до выкладки. Ниже про все три, про то, почему такой сервис вообще нельзя ставить рядом со своими с…
Мы делаем пет‑проект «Чатограмма», который считает статистику переписки: кто пишет первым, кто быстрее отвечает, в какие часы вы на связи. С первого дня у него одно жёсткое правило: файл с перепиской не уходит на сервер. Всё считается в браузере пользователя, а сервер не видит ни одного сообщения — не потому, что обещает не смотреть, а потому, что сообщения до него физически не доходят.Потом понадобилась подарочная книга: PDF формата A5, где самые яркие моменты переписки собраны по главам — с ч…
10 браузерных API, заменяющих пакеты NPM и плагины jQuery: dialog, popover, переходы отображения (view transitions), structuredClone, groupBy и Temporal с заметками о поддержке.❯ 1. IntersectionObserverНа протяжении многих лет “ленивая” (lazy) загрузка изображений означала установку lazysizes или lozad. lazysizes “слушает” события прокрутки, измеряет элементы с помощью getBoundingClientRect() при каждом таком событии и меняет атрибут data-src на src, когда изображение приближается к области про…