Содержание
  1. Кто и зачем ломает сайты
  2. 1. Сильные пароли и менеджер
  3. 2. Двухфакторная аутентификация
  4. 3. SSL и принудительный HTTPS
  5. 4. Свежий PHP
  6. 5. Регулярные обновления CMS
  7. 6. Минимум плагинов и тем
  8. 7. Регулярные бэкапы
  9. 8. Закрытие админки от ботов
  10. 9. Брандмауэр на уровне сайта
  11. 10. Защита от перебора паролей
  12. 11. Правильные права файлов
  13. 12. Отключить XML-RPC (WordPress)
  14. 13. Скрыть версии ПО
  15. 14. Использовать SFTP не FTP
  16. 15. Мониторинг и алерты
  17. FAQ
  18. Чек-лист защиты
  19. Заключение

Взлом сайта — не «у меня маленький проект, никому не нужен». Боты сканируют все сайты подряд, ищут уязвимости, ставят вирусы, рассылают спам или просто удаляют контент. Восстановление после взлома стоит времени, нервов и иногда денег. Защита — на 90% профилактика: 15 простых мер, которые делаются один раз и закрывают подавляющее большинство атак. В статье — пошаговая защита для HTML-сайта, WordPress и любого CMS.

Кто и зачем ломает сайты

  • Автоматические боты. Сканируют миллионы сайтов, ищут известные уязвимости. 95% атак — именно от них.
  • Спамеры. Взламывают, чтобы рассылать через ваш сервер спам — портится репутация IP, банят почту.
  • SEO-черные. Внедряют скрытые ссылки, перенаправляют ваш SEO-вес на их сайты.
  • Майнеры. Устанавливают скрипты майнинга — нагружают сервер посетителей.
  • Конкуренты. Реже — но бывает: DDoS, накрутка отказов, кража контента.
  • Хактивисты. Атаки по политическим мотивам.

1. Сильные пароли и менеджер

Слабый пароль — главная причина взломов. Базовые правила:

  • Минимум 16 символов;
  • Буквы разного регистра, цифры, спецсимволы;
  • Уникальный пароль для каждого сервиса;
  • Не словарные слова и не «123456».

Используйте менеджер: Bitwarden (бесплатный, open source), 1Password, KeePass.

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

2FA защищает даже если пароль украдут. При входе нужен код из приложения (Google Authenticator, Authy) или SMS.

Включите 2FA для:

  • Личного кабинета хостинга;
  • Email-аккаунта;
  • Админки CMS (WordPress — плагин Wordfence или Two Factor);
  • Git-репозиториев.

3. SSL и принудительный HTTPS

Без SSL пароли передаются в открытом виде — перехватываются в любой публичной сети.

Установите бесплатный Let's Encrypt через панель хостинга (отдельная статья). Включите принудительное перенаправление с http на https.

4. Свежий PHP

Старые версии PHP (5.x, 7.x) — без патчей безопасности. Обновитесь до PHP 8.1+. На большинстве хостингов — в один клик в панели.

5. Регулярные обновления CMS

Большинство взломов через уязвимости в устаревших плагинах. Правила:

  • WordPress — включите автообновления для минорных версий;
  • Раз в месяц проверяйте обновления плагинов и тем;
  • Удаляйте плагины, которые перестали поддерживаться (нет обновлений 6+ месяцев).

6. Минимум плагинов и тем

Каждый плагин — потенциальная уязвимость. Не ставьте «на будущее» или «вдруг пригодится». Удалите лишние, неактивные. Темы — оставьте только активную + одну запасную для тестов.

7. Регулярные бэкапы

Бэкап не защищает от взлома, но позволяет восстановиться после.

  • На хостинге — автоматические ежедневные;
  • На свой компьютер — раз в неделю вручную или через скрипт;
  • В облако (Yandex Disk, Google Drive) — на случай отказа сервера.

Храните минимум 3 копии за разные периоды (день, неделя, месяц).

8. Закрытие админки от ботов

WordPress админка по адресу /wp-admin/ — первая цель ботов. Способы защиты:

  • Сменить URL админки (плагин WPS Hide Login).
  • Ограничить доступ по IP в .htaccess.
  • Добавить базовую авторизацию (логин-пароль на уровне Apache).
# .htaccess в папке /wp-admin/
AuthType Basic
AuthName "Restricted"
AuthUserFile /home/user/.htpasswd
Require valid-user

# Или ограничение по IP
Require ip 192.0.2.10

9. Брандмауэр на уровне сайта

WAF (Web Application Firewall) фильтрует подозрительные запросы:

  • Cloudflare — бесплатный CDN с базовым WAF.
  • Wordfence — WordPress-плагин с WAF.
  • Sucuri — облачный WAF (платно).

Бесплатный Cloudflare — лучшая базовая защита для большинства сайтов.

10. Защита от перебора паролей

Боты пробуют тысячи паролей подряд. Ограничьте число попыток:

  • WordPress: плагин Limit Login Attempts Reloaded.
  • На уровне Apache: модуль mod_security.
  • На VPS: fail2ban — банит IP после нескольких неудачных попыток.

11. Правильные права файлов

Неправильные права = доступ к файлам с улицы. Стандарт:

  • Папки: 755 (rwxr-xr-x).
  • Файлы: 644 (rw-r--r--).
  • Конфиги с паролями (wp-config.php, .env): 600 (rw-------).

Никогда не ставьте 777 — все могут читать, писать, выполнять.

12. Отключить XML-RPC (WordPress)

Старый API WordPress, использующийся для брутфорса.

# В .htaccess
<Files xmlrpc.php>
  Order Allow,Deny
  Deny from all
</Files>

Или плагин Disable XML-RPC.

13. Скрыть версии ПО

Версии сервера, PHP, CMS — подсказка для атакующих, какие уязвимости пробовать.

  • В php.ini: expose_php = Off.
  • В WordPress — удалите <meta name="generator" content="WordPress ..."> в шаблоне.
  • В Apache — ServerTokens Prod.

14. Использовать SFTP не FTP

FTP передаёт пароли в открытом виде. Использование в публичных сетях — гарантированная утечка. SFTP шифрует всё.

В FileZilla: Менеджер сайтов → Протокол → SFTP. Порт 22.

15. Мониторинг и алерты

Чтобы заметить взлом сразу:

  • UptimeRobot — следит за доступностью.
  • Wordfence Live Traffic — видно, кто пытается зайти в админку.
  • Логи сервера — раз в неделю просматривайте подозрительные записи.
  • Google Search Console — уведомит, если Google найдёт вредоносный код.
  • Antivirus-сервисы хостингов — встроенные сканеры.

FAQ

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

1) Не паникуйте. 2) Сделайте бэкап текущего состояния (для расследования). 3) Восстановите чистую версию из бэкапа. 4) Смените все пароли. 5) Найдите дыру (плагин, тема, конфиг) и закройте. 6) Проверьте сайт на наличие вредоносного кода (Sucuri SiteCheck, Wordfence).

Достаточно ли бесплатного Cloudflare?

Для большинства небольших сайтов — да. Базовый WAF, DDoS-защита, скрытие реального IP. Платные тарифы — для крупных проектов.

Защищён ли HTML-сайт без CMS от взлома?

Безопаснее CMS, потому что нет admin-панели и плагинов. Но взломать можно: через FTP (если пароли украли), через сам хостинг (если уязвимость в нём). Сильный пароль + SFTP + бэкап — закрывает 99%.

Нужен ли антивирус для сайта?

На большинстве хостингов есть встроенный сканер. Дополнительно — раз в неделю прогоняйте через Sucuri SiteCheck (бесплатно). Для WordPress — плагин Wordfence.

Можно ли защититься от DDoS-атак?

Полностью — нет (крупные атаки роняют даже большие сайты). Базово — Cloudflare фильтрует. Хостинг с защитой от DDoS — следующий уровень. От массивной атаки спасает только специализированный сервис.

Сколько времени занимает базовая защита?

Все 15 мер — 2-3 часа единовременных настроек. Дальше — раз в месяц проверка обновлений и логов, ещё 30 минут.

Стоит ли использовать платные сервисы безопасности?

Для небольшого сайта — нет, хватает бесплатных. Для коммерческого с большой аудиторией и репутационными рисками — да. Sucuri ($199/год), Wordfence Premium — дают полноценный сервис.

Чек-лист защиты

  • ☐ Сильные уникальные пароли везде
  • ☐ Менеджер паролей установлен
  • ☐ 2FA на хостинге, почте, админке
  • ☐ SSL и принудительное HTTPS
  • ☐ Современный PHP (8.1+)
  • ☐ Все обновления CMS и плагинов установлены
  • ☐ Лишние плагины и темы удалены
  • ☐ Автоматические бэкапы настроены
  • ☐ Бэкапы хранятся локально и в облаке
  • ☐ Админка скрыта или защищена basic-auth
  • ☐ WAF подключен (Cloudflare, Wordfence)
  • ☐ Ограничение попыток входа
  • ☐ Правильные права на файлы
  • ☐ XML-RPC отключен (WordPress)
  • ☐ Версии ПО скрыты
  • ☐ Только SFTP, никакого FTP
  • ☐ Мониторинг доступности и взлома

Заключение

Защита сайта — на 90% профилактика: сильные пароли, обновления, бэкапы, базовый WAF. 15 мер из этой статьи закрывают практически все типовые атаки и стоят несколько часов настройки. Это не дороже одного бизнес-обеда, но экономит дни восстановления после взлома.

Если ваш хостинг не предлагает базовую защиту (бесплатный SSL, антивирусное сканирование, нормальные бэкапы) — пора менять. Найти безопасные хостинги можно в подборщике Zettabyte с фильтром по нужным функциям. А для нового сайта — посмотрите подборку HTML-шаблонов.