Безопасность сайта: минимум, который закрывает большинство рисков

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

ББэкенд и интеграции

Сайты малого и среднего бизнеса взламывают редко целенаправленно. В основном это автоматика: боты перебирают известные дыры в популярных плагинах и слабые пароли. Защита от массовых атак стоит недорого и закрывает подавляющую часть рисков.

Откуда приходят проблемы на практике

За последние два года мы разбирали одиннадцать заражённых сайтов клиентов, которые пришли к нам на поддержку. Причины распределились так:

  • Устаревший плагин с известной уязвимостью — 6 случаев
  • Слабый или утёкший пароль администратора — 3 случая
  • Заражённая тема из бесплатного каталога — 1 случай
  • Дыра в собственном коде — 1 случай

Девять из одиннадцати — обновления и пароли. Не архитектура, не хитрые атаки.

Восемь мер, которые ставим всем

1. Обновления по расписанию

Ядро и плагины обновляются раз в две недели на копии сайта, потом на боевом. Автообновления безопасности включены всегда — они не ломают совместимость.

2. Двухфакторная аутентификация для админов

Закрывает три случая из одиннадцати полностью. Приложение-аутентификатор бесплатно и настраивается за пять минут.

3. Ограничение попыток входа

После пяти неудач адрес блокируется на час. Перебор паролей становится бессмысленным.

4. Запрет выполнения PHP в загрузках

Самый частый способ закрепиться после взлома — залить скрипт через форму загрузки. Одна директива на уровне сервера убирает эту возможность.

# nginx: в каталоге загрузок PHP не выполняется
location ~* /wp-content/uploads/.*\.php$ {
    deny all;
    return 403;
}

5. Отключение редактирования файлов из админки

Встроенный редактор темы — готовый инструмент для того, кто получил доступ. Отключается одной константой.

// wp-config.php
define( 'DISALLOW_FILE_EDIT', true );

6. Резервные копии в другом месте

Копия на том же сервере бесполезна: шифровальщик заберёт и её. Мы храним ежедневные копии семь дней в отдельном хранилище и раз в квартал проверяем, что они разворачиваются.

7. HTTPS и заголовки безопасности

Сертификат обязателен, плюс несколько заголовков, которые закрывают целые классы атак.

add_header Strict-Transport-Security "max-age=31536000" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;

8. Минимум прав у пользователей

Контент-менеджеру не нужны права администратора. Роль «Редактор» позволяет вести сайт и не позволяет установить плагин.

Что не обязательно малому бизнесу

Дорогой WAF, платный сканер уязвимостей и ежегодный пентест. Для сайта услуг на 20 страниц это трата, которая не окупается: базовые меры закрывают те же векторы за небольшую часть стоимости.

Что делать, если уже взломали

  1. Снять сайт с публики — заглушка лучше, чем раздача вредоносного кода посетителям.
  2. Сменить все пароли: админки, базы, FTP, хостинга. Именно все.
  3. Развернуть чистую копию до даты заражения, а не чистить заражённые файлы.
  4. Обновить всё и только потом возвращать сайт в работу.
  5. Проверить, не осталось ли лишних учётных записей администратора.

Откуда на самом деле приходят взломы

Целенаправленные атаки на небольшой сайт — редкость. Подавляющее большинство взломов массовые: робот обходит адреса, проверяет известные уязвимости в популярных плагинах и подбирает пароли. Ему всё равно, чей это сайт, — интересна только возможность.

Отсюда практический вывод: защищаться нужно не от искусного взломщика, а от конвейера. А конвейер останавливается простыми вещами — обновлениями, нормальными паролями и вторым фактором. Сложные меры вроде фильтрации трафика нужны редко и не заменяют базовых.

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

Что даёт мало и стоит дорого

Смена адреса админки и скрытие версии движка отпугивают самые примитивные сканеры и создают ощущение защищённости. Реальная польза мала: серьёзный робот определяет и то, и другое за один запрос. Это не вредно, но не заменяет обновлений.

Плагины «всё в одном» с десятком галочек часто больше мешают, чем помогают: ложные срабатывания блокируют редакторов, а нагрузка растёт заметно. Мы предпочитаем несколько точечных мер, каждую из которых можно объяснить.

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

Частые вопросы

Как часто ставить обновления?

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

Нужен ли платный сертификат?

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

Чистка заражённых файлов вручную почти всегда оставляет что-то незамеченным. Восстановление из копии быстрее и надёжнее — при условии, что копии есть.

5 мин чтения
ЕГЕРПРО

ЕГЕРПРО

Команда студии ЕГЕРПРО: разработчики, дизайнеры, SEO-специалисты и специалисты по технологиям искусственного интеллекта. Создаём сайты и веб-сервисы, внедряем решения на основе искусственного интеллекта и автоматизацию, работаем над скоростью и продвижением сайтов. Пишем только о технологиях и подходах, которые проверили на реальных клиентских проектах.

Нужен сайт, который так же разобран по деталям?

Оценим задачу бесплатно и пришлём смету со сроками.

Читайте также

Похожие статьи

Сайт в разработке информация наполняется. Часть разделов может быть неполной.