
Небольшой сайт кажется неинтересной целью: кому нужна визитка компании или лендинг. Но большинство взломов не направлены на кого-то конкретного. Боты перебирают сайты один за другим и ищут старые плагины, слабые пароли и открытые админки. Ваш сайт попадает в этот список просто потому, что он есть в интернете.
Хорошая новость в том, что от массовых атак защищают простые и недорогие вещи. Ниже то, что стоит сделать при запуске и проверять потом.
Пароли и двухфакторная защита
Начать стоит с аккаунтов, через которые можно забрать сайт целиком: регистратор домена, хостинг, почта, админка сайта, аккаунт Telegram-бота. На каждом нужен свой длинный пароль и включённая двухфакторная защита, если она там есть.
Пароли удобнее всего хранить в менеджере паролей, а не в заметках телефона или переписке с разработчиком. Если пароль когда-то отправляли в мессенджере, его лучше сменить.
Личные доступы вместо общих
Один логин admin на всех удобен, пока кто-то не уходит из компании или не заканчивается работа с подрядчиком. Тогда непонятно, кто ещё знает пароль. Лучше, когда у каждого человека своя учётная запись с теми правами, которые ему нужны.
- Владелец имеет полный доступ ко всему
- Разработчик получает отдельный доступ, который можно закрыть после работ
- Сотрудник, который обновляет новости, не может менять настройки и ставить плагины
- Когда человек уходит, его доступ отключается в тот же день
Обновления и лишнее
Устаревшие CMS и плагины остаются самой частой причиной взлома. Обновления выходят в том числе потому, что в старой версии нашли дыру. Обновлять стоит по плану, с резервной копией перед этим и проверкой сайта после.
Ещё лучше, когда лишнего нет вообще. Каждый плагин, тема или виджет, которыми никто не пользуется, остаётся кодом на сервере, который тоже нужно обновлять. Удалите то, что не используется, а не просто отключите.
Формы и загрузка файлов
Формы принимают данные от кого угодно, поэтому сервер должен проверять всё, что в них приходит. Если форма позволяет загрузить файл, нужно ограничить типы и размер файлов и хранить их так, чтобы их нельзя было запустить как программу. Это задача разработчика, но спросить о ней стоит вам.
Ключи и секреты
Пароли от базы, токены платёжных сервисов и токен бота не должны лежать в коде и в открытом репозитории. Их хранят в настройках сервера. Если токен всё же попал в публичное место, его нужно сразу перевыпустить, а не просто удалить из файла.
Если сайт всё же взломали
- Сменить пароли от хостинга, админки, почты и базы
- Восстановить сайт из чистой резервной копии, а не чистить заражённую версию вручную
- Обновить всё, что устарело, и найти, через что был взлом
- Проверить панели вебмастера на предупреждения и отправить сайт на повторную проверку
Всё это сильно проще, если резервные копии есть и восстановление уже проверялось. Поэтому план на случай взлома начинается задолго до самого взлома.
Что из этого обычно входит в регулярную работу, описано в тексте про поддержку после запуска, а какие доступы должны остаться у вас, в тексте про домен, хостинг и доступы. Если хотите, чтобы мы проверили ваш сайт, напишите через контакты.