Содержание
- Кто и зачем ломает сайты
- 1. Сильные пароли и менеджер
- 2. Двухфакторная аутентификация
- 3. SSL и принудительный HTTPS
- 4. Свежий PHP
- 5. Регулярные обновления CMS
- 6. Минимум плагинов и тем
- 7. Регулярные бэкапы
- 8. Закрытие админки от ботов
- 9. Брандмауэр на уровне сайта
- 10. Защита от перебора паролей
- 11. Правильные права файлов
- 12. Отключить XML-RPC (WordPress)
- 13. Скрыть версии ПО
- 14. Использовать SFTP не FTP
- 15. Мониторинг и алерты
- FAQ
- Чек-лист защиты
- Заключение
Взлом сайта — не «у меня маленький проект, никому не нужен». Боты сканируют все сайты подряд, ищут уязвимости, ставят вирусы, рассылают спам или просто удаляют контент. Восстановление после взлома стоит времени, нервов и иногда денег. Защита — на 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).
Для большинства небольших сайтов — да. Базовый WAF, DDoS-защита, скрытие реального IP. Платные тарифы — для крупных проектов.
Безопаснее CMS, потому что нет admin-панели и плагинов. Но взломать можно: через FTP (если пароли украли), через сам хостинг (если уязвимость в нём). Сильный пароль + SFTP + бэкап — закрывает 99%.
На большинстве хостингов есть встроенный сканер. Дополнительно — раз в неделю прогоняйте через Sucuri SiteCheck (бесплатно). Для WordPress — плагин Wordfence.
Полностью — нет (крупные атаки роняют даже большие сайты). Базово — 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-шаблонов.