Статьи
Короткие разборы по сайтам, ботам, скриптам, серверу и автоматизации. Без академичности: только то, что помогает быстрее понять задачу и принять решение.
Mutation выполняется дважды при повторе запроса: идемпотентность в GraphQL
GraphQL mutation может создать дубль при retry, двойном клике, reconnect или повторе клиента. Нужно добавить idempotency key, транзакции и защиту UI.
Читать статью →Одно событие webhook приходит несколько раз: retries, идемпотентность и защита от дублей
Webhook часто доставляется повторно. Если обработчик не идемпотентен, появляются дубли заказов, оплат и уведомлений. Как правильно обработать повторы.
Читать статью →API отдает персональные данные в лишних полях: как закрыть утечку в ответах
REST API может отдавать email, телефон, роли, токены, внутренние ID и лишние поля из модели. Нужно проверить serializers, DTO, scopes и права.
Читать статью →Consumer падает на одном плохом сообщении: retry, DLQ и защита очереди
Consumer RabbitMQ, Kafka или Redis Streams может падать на одном bad message и блокировать всю очередь. Нужно настроить валидацию, retry, DLQ и идемпотентность.
Читать статью →Sentry получает персональные данные пользователей: как настроить фильтрацию событий
Sentry может получать email, телефоны, токены, payload форм и персональные поля. Нужно настроить beforeSend, scrubbers, denylist и правила логирования.
Читать статью →СМС отправляется дважды при одной попытке входа: как убрать дубли OTP
Двойная отправка СМС при входе возникает из-за повторного клика, retry, двух обработчиков, гонки запросов, frontend-дубля и отсутствия идемпотентности.
Читать статью →После смены телефона пользователь потерял доступ к 2FA: безопасное восстановление
Потеря доступа к 2FA после смены телефона требует проверки личности, резервных кодов, TOTP-секрета, политики сброса и аудита безопасности.
Читать статью →Авторизация через Одноклассники перестала выдавать токен: OAuth callback и настройки приложения
OAuth через Одноклассники может перестать выдавать токен из-за redirect_uri, client secret, scope, callback, HTTPS, подписи запроса и изменений приложения.
Читать статью →DNS через VPN не работает: как проверить маршруты, resolv.conf, split DNS и DoH
DNS через VPN может не работать из-за split tunneling, неправильного DNS-сервера, маршрутов, systemd-resolved, DoH, клиента WireGuard/Xray и политики сети.
Читать статью →HTTPS редирект не работает: nginx, Apache, .htaccess, CDN и mixed redirects
HTTPS редирект может не работать из-за правил nginx/Apache, .htaccess, CDN, proxy headers, HSTS, www/non-www и конфликтующих редиректов.
Читать статью →Автобэкап сайта не работает: как проверить cron, место на диске и восстановление
Автобэкап сайта может не работать из-за cron, прав, места на диске, ошибок mysqldump, исключений файлов, S3/FTP и отсутствия проверки восстановления.
Читать статью →Сайт не видит папку uploads: права, путь, open_basedir и настройки CMS
Папка uploads может быть недоступна сайту из-за неправильного пути, владельца, прав, symlink, open_basedir, Docker volume или настроек CMS.
Читать статью →