Пока вы спите, боты не дремлют: как не отдавать сайт на растерзание

Автор: | 19.03.2026

Интернет больше похож на оживлённый перекрёсток, чем на библиотеку: мимо проносятся сканеры, боты, экспериментаторы с чужим кодом. Стоит зевнуть, и в логах вспыхнут ошибки, а в базе окажутся лишние записи. Я не раз ловил такие попытки на продакшн-проектах и каждый раз убеждался: защита работает, когда она повседневна, а не празднична.

Безопасность сайта: основные уязвимости и как их закрыть

Большинство взломов не похоже на кино, это рутина: инъекции в поля форм, старые плагины, предсказуемые идентификаторы. Ремонт тут предельно практичен: ограничить входные данные, изолировать доступы, регулярно обновлять и наблюдать без отвлечений.

Полезно мыслить слоями. Один барьер срывается, другой удерживает, третий даёт сигнал, а четвёртый помогает быстро восстановиться без паники.

SQL-инъекции: когда база говорит чужим голосом

Источник беды — динамические запросы, собранные строками. Лекарство известно: подготовленные выражения, ORM с параметрами, строгие права для аккаунта БД, который умеет только то, что нужно приложению.

В одном проекте «админский» аккаунт по недосмотру жил в коде и имел права суперпользователя. Перевели приложение на отдельного пользователя с минимальными привилегиями — потенциальная утечка превратилась бы максимум в ошибку доступа.

XSS и CSRF: невидимые клики и ядовитые скрипты

XSS лечится не «фильтрацией всего подряд», а кодированием контента на выходе по контексту: HTML, атрибуты, JavaScript. В помощь идут Content Security Policy, отказ от инлайновых скриптов и валидация того, что вообще разрешено показывать пользователю.

CSRF пресекается токенами в формах, заголовками SameSite для кук, проверкой происхождения запросов. На одном клиентском сайте поддельная форма меняла e-mail администратора, пока мы не ввели токены и SameSite=Lax — трюк сразу стал бессилен.

Аутентификация и пароли: крепость начинается с ворот

Пароли храним только с солью и медленным хешем: Argon2 или bcrypt, не SHA-1 и не MD5. Политика — без фанатизма, но с разумным минимумом, плюс ограничение попыток входа, капча при аномалиях и аудиты подозрительной активности.

Читайте также:  Который движок выстрелит у вас в 2026: как не промахнуться между WordPress, Tilda, Bitrix и собственным стеком

Двухфакторная авторизация резко снижает риск захвата. Для сессий — флаги HttpOnly и Secure у кук, короткий срок жизни, привязка к устройству и ротация идентификатора после входа.

Загрузки и конфигурация: черный ход в пару кликов

Файлы принимаем осторожно: проверяем расширение и MIME, генерируем безопасные имена, храним вне корня сайта. Запрещаем выполнение загруженного, ограничиваем размер и количество, при необходимости прогоняем через антивирус.

Конфиги и ключи не должны лежать в репозитории без шифрования. Переменные окружения и менеджеры секретов экономят нервы и не оставляют «подарков» в кэше.

Шифрование и заголовки: дисциплина протокола

HTTPS по умолчанию, редирект с HTTP, HSTS, актуальные шифросuites и отсутствие устаревших протоколов. Это не «галочка», это базовая гигиена трафика.

Добавьте X-Content-Type-Options, X-Frame-Options или frame-ancestors в CSP, Referrer-Policy, строгую CSP с nonce или hash. Мелочи собираются в прочный каркас.

Обновления и зависимости: свежесть как стратегия

Большинство атак используют известные дыры в CMS и плагинах. Регулярные обновления, проверенные источники, минимальный набор модулей и контроль изменений снижают площадь атаки.

Автоматические сканеры зависимостей и оповещения о CVE помогают не пропустить важное. Там, где критично, ставьте staging и тестируйте патчи перед выкладкой.

Логи, мониторинг и резервные копии: смотреть, понимать, восстанавливать

Логи доступа и ошибок с корреляцией по запросам дают картину дня. Алерты на всплески 4xx/5xx, на массовые попытки входа и странные параметры запросов экономят часы расследований.

Бэкапы проверяют не размером, а восстановлением. Держите офлайн-копии, расписание и периодические «учебные тревоги» — только так ясно, что всё действительно поднимется.

Короткий чек-лист для ежедневной рутины

Когда времени впритык, помогает короткий ритуал. Эти шаги занимают минуты, а закрывают основные прорехи.

  • Параметризованные запросы во всех местах, где есть БД.
  • CSP, HttpOnly/Secure/SameSite, отказ от инлайновых скриптов.
  • Хеширование паролей через Argon2/bcrypt, лимит попыток входа.
  • Обновления ядра, плагинов и зависимостей по расписанию.
  • Проверка настроек SSL/TLS и актуальности сертификата.
  • Мониторинг логов и тест восстановления из бэкапа.
Читайте также:  Когда сайт становится приложением: PWA без мистики и лишних обещаний

Безопасность — это не героизм, а ремесло. Делая эти простые вещи регулярно, вы оставляете злоумышленнику лишь пустой звук и чужие следы в песке логов.