668 слов | 4 минуты

Как защитить сайт от взлома

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

Почему сайты взламывают

Понимание мотивации помогает правильно расставить приоритеты защиты:

  • Рассылка спама — ваш сервер используют для отправки тысяч писем
  • Размещение вредоносного кода — заражают посетителей вашего сайта
  • SEO-спам — добавляют скрытые ссылки или страницы для продвижения чужих сайтов
  • Кража данных — похищают базы данных с контактами и платёжными данными
  • DDoS-атаки — используют ваш сервер для атак на другие ресурсы
  • Шантаж — шифруют данные и требуют выкуп

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

Основные меры защиты

1. Регулярно обновляйте CMS, плагины и темы

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

Что делать:

  • Включите автоматические обновления безопасности
  • Проверяйте наличие обновлений хотя бы раз в неделю
  • Удалите неиспользуемые плагины и темы — даже неактивные могут быть уязвимы
  • Не используйте плагины которые давно не обновлялись (более 1–2 лет)

2. Используйте надёжные пароли

Простые пароли взламываются брутфорсом за минуты. Требования к паролям:

  • Минимум 16 символов
  • Сочетание букв, цифр и спецсимволов
  • Уникальный для каждого сервиса
  • Не содержит личных данных (имя, дата рождения, название сайта)

Используйте менеджер паролей — 1Password, Bitwarden или KeePass. Не нужно запоминать — нужно хранить безопасно.

3. Включите двухфакторную аутентификацию

Даже если пароль украдут — без второго фактора войти не получится. Настройте 2FA для:

  • Панели управления хостингом
  • Административной части сайта
  • FTP/SFTP доступа
  • Email на домене

4. Ограничьте доступ к админке

По IP-адресу — разрешите вход только с вашего IP:

<Files "wp-login.php">
    Order Deny,Allow
    Deny from all
    Allow from ВАШ_IP
</Files>

Смените стандартный URL — вместо /wp-admin или /bitrix/admin используйте нестандартный путь.

Ограничьте количество попыток входа — после 5 неудачных попыток блокируйте IP на 30 минут.

5. Настройте SSL (HTTPS)

Сайт без HTTPS передаёт данные форм в открытом виде. Получить бесплатный сертификат можно через Let's Encrypt — большинство хостингов поддерживают его установку в один клик.

Дополнительно настройте HSTS — это запрещает браузеру обращаться к сайту по HTTP:

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

6. Настройте резервные копии

Резервные копии — это ваша страховка. Даже если сайт взломают, вы сможете восстановить его за минуты, а не дни.

Требования к бэкапам:

  • Автоматически, минимум раз в сутки
  • Хранить на отдельном сервере или в облаке (не на том же хостинге)
  • Хранить минимум 30 дней
  • Периодически проверять что бэкап восстанавливается

7. Установите Web Application Firewall

WAF фильтрует входящий трафик и блокирует атаки до того как они достигают вашего сайта. Защищает от SQL-инъекций, XSS, брутфорса и других типичных атак.

Варианты:

  • Cloudflare — бесплатный план включает базовый WAF и защиту от DDoS
  • Sucuri — специализированный WAF для сайтов
  • ModSecurity — устанавливается на сервер (нужны права root)

8. Правильно настройте права на файлы

Неправильные права позволяют вредоносным скриптам изменять файлы сайта:

Папки: 755
Файлы: 644
Конфигурационные файлы (wp-config.php, .env): 600

Проверить и исправить права через SSH:

find /путь/к/сайту -type d -exec chmod 755 {} \;
find /путь/к/сайту -type f -exec chmod 644 {} \;
chmod 600 wp-config.php

9. Скройте версию CMS и PHP

Информация о версии помогает хакерам выбрать нужный эксплойт. Скройте её:

# Скрыть версию Apache
ServerTokens Prod
ServerSignature Off

Для PHP в php.ini:

expose_php = Off

10. Настройте мониторинг

Вы должны узнавать о проблемах раньше посетителей:

  • Яндекс Вебмастер и Google Search Console — уведомят при обнаружении вредоносного кода
  • UptimeRobot (бесплатно) — проверяет доступность сайта каждые 5 минут и присылает SMS при падении
  • Мониторинг целостности файлов — уведомление при изменении критичных файлов

Специфика защиты разных CMS

WordPress

  • Используйте плагин Wordfence или Solid Security (iThemes Security)
  • Отключите XML-RPC если не используете: xmlrpc.php
  • Измените стандартное имя пользователя admin
  • Включите защиту от брутфорса

1С-Битрикс

  • Используйте встроенный «Монитор безопасности» — он проверяет настройки и даёт рекомендации
  • Включите «Проактивную защиту» в настройках модуля
  • Ограничьте доступ к /bitrix/ по IP
  • Регулярно запускайте встроенный антивирусный сканер

Самописный сайт / Laravel

  • Никогда не доверяйте пользовательскому вводу — валидируйте и экранируйте всё
  • Используйте подготовленные запросы (PDO) — защита от SQL-инъекций
  • Настройте Content Security Policy (CSP)
  • Храните секреты в .env файле, никогда не коммитьте его в репозиторий

Чек-лист минимальной безопасности

Если не готовы делать всё сразу — начните с этого:

  • Обновить CMS и все плагины до последних версий
  • Сменить все пароли на надёжные (16+ символов)
  • Включить двухфакторную аутентификацию для админки
  • Настроить автоматические резервные копии
  • Подключить SSL (HTTPS)
  • Добавить сайт в Яндекс Вебмастер и Google Search Console

Если хотите профессиональную настройку защиты сайта — обратитесь к нам. Проведём аудит безопасности и закроем уязвимости.