Безопасность сайта: защита от взлома и спама
Многие владельцы небольших сайтов уверены, что их проект никому не интересен: ни денег, ни секретов, ни громкого имени. Зачем кому-то его взламывать? На практике всё устроено иначе. Подавляющее большинство взломов происходит не вручную, а автоматически: программы-боты круглосуточно перебирают тысячи сайтов в поисках известных уязвимостей и слабых паролей. Им всё равно, блог это о рыбалке или интернет-магазин. Взломанный сайт можно использовать для рассылки спама, размещения скрытых ссылок, распространения вредоносных программ или фишинговых страниц. Последствия для владельца неприятные: санкции поисковиков, предупреждения в браузерах, потеря посетителей и долгое восстановление. Хорошая новость в том, что базовая защита не требует глубоких знаний, а лишь дисциплины и нескольких правильных привычек.
Откуда берутся угрозы
Чтобы защищаться осмысленно, полезно понимать, как обычно происходит взлом. Самые частые сценарии выглядят так:
- подбор пароля — боты пытаются войти в админку, перебирая популярные логины и пароли;
- уязвимости в устаревших программах — в старых версиях CMS, плагинов и тем находят дыры, о которых потом знают все, включая злоумышленников;
- заражённые дополнения — темы и плагины, скачанные из сомнительных источников, могут содержать встроенный вредоносный код;
- утечка доступов — пароли от хостинга или админки, сохранённые в незащищённом месте или отправленные по почте, попадают в чужие руки;
- заражение компьютера владельца — вирус на вашем компьютере может перехватить пароли, которые вы вводите.
Обратите внимание: почти все эти сценарии связаны не с гениальными хакерами, а с обычной небрежностью. Значит, и защита в основном строится на аккуратности.
Пароли и доступы
Начнём с самого простого и самого важного. Пароль от админки, хостинга, панели управления доменом и почты, на которую всё это зарегистрировано, — это ключи от вашего сайта.
Основные правила:
- Используйте длинные уникальные пароли для каждого сервиса. Пароль, который вы уже где-то использовали, может утечь вместе с базой другого сайта.
- Храните пароли в менеджере паролей, а не в текстовом файле на рабочем столе или в заметках телефона.
- Включите двухфакторную аутентификацию везде, где она доступна: в панели хостинга, у регистратора домена, в почте и, по возможности, в админке сайта.
- Не используйте стандартные логины вроде «admin» для учётной записи администратора.
- Если вы давали доступ фрилансеру, после завершения работы удалите его учётную запись или смените пароль.
Почта, к которой привязаны хостинг и домен, — самое уязвимое звено. Если злоумышленник получит к ней доступ, он сможет восстановить пароли ко всему остальному. Защищайте её особенно тщательно.
Отдельно стоит сказать о правах пользователей. Если на сайте работают несколько авторов, не давайте каждому права администратора. Автору достаточно возможности писать и редактировать свои статьи. Чем меньше людей с полным доступом, тем меньше риск.
Обновления: скучно, но жизненно важно
Разработчики CMS, тем и плагинов регулярно выпускают обновления, и значительная часть из них закрывает найденные уязвимости. Как только информация об уязвимости становится публичной, боты начинают массово искать сайты со старой версией. Поэтому сайт, который не обновлялся полгода, — лёгкая добыча.
Чтобы обновления не превращались в стресс:
- включите автоматические обновления безопасности, если ваша CMS это поддерживает;
- раз в неделю или хотя бы раз в две недели заходите в админку и проверяйте наличие обновлений;
- перед крупным обновлением делайте резервную копию;
- удаляйте плагины и темы, которыми не пользуетесь: даже отключённые, они могут содержать уязвимости;
- выбирайте дополнения, которые активно поддерживаются разработчиками и регулярно обновляются.
Если плагин не обновлялся несколько лет, стоит поискать ему замену. Заброшенное дополнение — потенциальная дыра, которую уже никто не закроет.
Только проверенные источники
Соблазн сэкономить на платной теме, скачав её «бесплатно» с сомнительного сайта, понятен, но крайне опасен. Такие взломанные версии очень часто содержат встроенный вредоносный код: скрытые ссылки, бэкдоры для удалённого доступа, скрипты для показа чужой рекламы. Вы получаете тему бесплатно, а платите за неё взломанным сайтом. Кроме того, использование нелицензионных копий — нарушение прав разработчика.
Устанавливайте темы и плагины только из официальных каталогов вашей CMS или с сайтов самих разработчиков. Если бюджет ограничен, выбирайте качественные бесплатные решения — их достаточно для большинства задач. О выборе платформы для сайта можно почитать в статье CMS или самописный сайт.
Резервные копии
Никакая защита не даёт стопроцентной гарантии. Поэтому главная страховка — резервные копии. Если сайт взломают, сломают неудачным обновлением или случайно удалят важные данные, свежая копия позволит восстановить всё за несколько минут вместо недель работы.
Правила хорошего резервного копирования:
- копируйте и файлы сайта, и базу данных — одно без другого бесполезно;
- делайте копии регулярно и автоматически, частота зависит от того, как часто обновляется сайт;
- храните копии не только на том же хостинге, но и в другом месте: в облачном хранилище или на своём компьютере;
- держите несколько копий за разные даты, а не одну последнюю — взлом могут обнаружить не сразу;
- хотя бы иногда проверяйте, что из копии действительно можно восстановить сайт.
Многие хостинг-провайдеры делают резервные копии автоматически, но полагаться только на них не стоит. Подробнее о стратегиях копирования рассказано в материале о резервном копировании рабочих файлов.
Защищённое соединение
Протокол HTTPS шифрует данные, которые передаются между браузером посетителя и сервером. Это защищает пароли при входе в админку, данные, которые посетители вводят в формы, и само содержимое страниц от подмены по пути. Сегодня HTTPS — обязательный минимум для любого сайта, а браузеры помечают сайты без него как небезопасные. Подробно о том, как это устроено и как подключить, рассказано в статье о SSL-сертификате и HTTPS.
Борьба со спамом
Если на сайте есть комментарии, формы обратной связи или регистрация, рано или поздно туда придут спам-боты. Они оставляют комментарии со ссылками на сомнительные сайты, регистрируют фальшивые аккаунты, засыпают почту бессмысленными заявками. Спам вредит не только нервам: страницы с сотнями мусорных комментариев выглядят заброшенными, а ссылки на плохие сайты могут повредить репутации в глазах поисковиков.
Что помогает:
- антиспам-плагины, которые автоматически распознают и отсеивают типичный спам;
- капча или более мягкие проверки на человечность в формах;
- скрытые поля-ловушки, которые видят только боты и заполняют их, выдавая себя;
- премодерация первых комментариев новых пользователей;
- закрытие комментариев на старых статьях, где обсуждение давно затихло;
- атрибуты для ссылок в комментариях, которые сообщают поисковикам, что вы за эти ссылки не ручаетесь.
Не публикуйте адрес электронной почты на сайте открытым текстом — боты соберут его для рассылок. Используйте форму обратной связи.
Дополнительные меры защиты
Когда базовые вещи в порядке, можно добавить ещё несколько уровней защиты:
- Ограничение попыток входа. После нескольких неудачных попыток ввода пароля доступ с этого адреса блокируется на время. Это делает перебор паролей бессмысленным.
- Плагин безопасности. Такие расширения сканируют файлы на изменения, следят за подозрительной активностью и присылают уведомления.
- Смена адреса входа в админку. Нестандартный адрес отсекает значительную часть автоматических атак.
- Правильные права доступа к файлам на хостинге — чтобы посторонние скрипты не могли их изменять.
- Защита своего компьютера — антивирус, обновлённая операционная система и осторожность при скачивании файлов.
Что делать, если сайт взломали
Признаки взлома бывают разными: на сайте появились чужие ссылки или страницы, браузер или поисковик предупреждает об опасности, посетители жалуются на перенаправления на другие сайты, хостинг сообщает о рассылке спама с вашего аккаунта.
Порядок действий:
- Не паникуйте и не удаляйте всё подряд.
- Смените все пароли: от хостинга, админки, базы данных, почты.
- Свяжитесь со службой поддержки хостинга — они часто помогают найти заражённые файлы.
- Восстановите сайт из чистой резервной копии, сделанной до взлома.
- Обновите CMS, темы и плагины до последних версий и удалите всё лишнее.
- Проверьте сайт в панелях вебмастера и, если есть предупреждения, отправьте запрос на повторную проверку после очистки.
- Разберитесь, как произошёл взлом, чтобы закрыть эту дыру.
Итог
Безопасность сайта строится не на сложных технологиях, а на простых регулярных привычках. Длинные уникальные пароли и двухфакторная аутентификация, своевременные обновления, дополнения только из проверенных источников, регулярные резервные копии в нескольких местах, HTTPS и антиспам-защита — этого достаточно, чтобы отсечь подавляющее большинство угроз. Помните, что боты не выбирают жертв по значимости, они ищут слабые места. Не оставляйте их на своём сайте, и он будет спокойно работать годами.