г. Калининград, ул. Генерала Соммера, д. 28, офис 304
[email protected] Заказать звонок

Безопасность сайта: базовые меры защиты

Безопасность сайта: базовые меры защиты
Рубрика: Технологии и вёрсткаВремя чтения: 9 минАвтор: редакция студии «Баратура»

Многие владельцы небольших сайтов уверены, что взламывают только банки и крупные магазины: «Кому нужна наша визитка с тремя страницами?» На деле большинство атак никто не направляет вручную. Автоматические программы круглосуточно перебирают миллионы сайтов подряд в поисках известных уязвимостей, слабых паролей и забытых обновлений. Им всё равно, продаёте вы янтарные украшения или ремонтируете кондиционеры. Им нужен ваш сервер — для рассылки спама, размещения вредоносных файлов, скрытых ссылок или майнинга.

Последствия взлома для малого бизнеса бывают очень ощутимыми: сайт помечается в поиске как опасный, браузеры показывают посетителям красное предупреждение, хостинг блокирует аккаунт, а заявки перестают приходить на несколько дней или недель. Восстановление обходится дороже, чем профилактика. Хорошая новость: большую часть рисков закрывают базовые меры, которые не требуют огромного бюджета. О них и поговорим.

Как обычно взламывают небольшие сайты

Чтобы понимать, от чего защищаться, полезно знать типичные сценарии. За время работы мы восстанавливали десятки сайтов, и причины почти всегда сводятся к нескольким вариантам.

Устаревшая CMS и плагины

Самая частая причина. В популярных системах управления и особенно в сторонних плагинах регулярно находят уязвимости. Разработчики выпускают исправления, но если сайт не обновлялся год-два, все найденные за это время дыры остаются открытыми. Информация о них публична, поэтому автоматические сканеры знают, что искать.

Слабые и повторяющиеся пароли

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

Пиратские темы и плагины

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

Уязвимые формы

Формы обратной связи, поиска, загрузки файлов без должной проверки входных данных позволяют внедрить вредоносный код в базу или на сервер. Это реже встречается на популярных CMS, но часто — на самописных сайтах, сделанных «на коленке».

Утечка доступов через людей

Доступы к хостингу, отправленные в мессенджере пять лет назад фрилансеру, с которым давно не работаете. Пароль на стикере у монитора. Общий аккаунт администратора на всех сотрудников. Технически это не взлом, но последствия те же.

Защищённое соединение: обязательный минимум

Если адрес вашего сайта начинается с http, а не с https, браузеры помечают его как небезопасный. Для посетителя это выглядит как предупреждение в адресной строке, а на страницах с формами — ещё и как явное сообщение о том, что вводимые данные могут быть перехвачены.

SSL-сертификат шифрует данные между браузером посетителя и сервером. Без него пароль, телефон или номер заказа, отправленные через общественный Wi-Fi в кафе, может прочитать кто угодно в той же сети. Сейчас базовый сертификат большинство хостингов выдают бесплатно и продлевают автоматически, так что причин работать без него нет.

После подключения сертификата важно проверить три вещи: что сайт автоматически перенаправляет с http на https, что все картинки и скрипты на страницах тоже загружаются по защищённому протоколу и что продление сертификата действительно настроено. Истёкший сертификат пугает посетителей даже сильнее, чем его отсутствие.

Пароли и доступы

Управление доступами — самая дешёвая и при этом самая недооценённая мера безопасности. Вот правила, которые мы рекомендуем всем клиентам:

  • Длинные уникальные пароли для каждого сервиса: админки, хостинга, почты, регистратора домена.
  • Менеджер паролей вместо таблицы на рабочем столе или блокнота.
  • Двухфакторная аутентификация везде, где она поддерживается, особенно для хостинга и почты.
  • Отдельная учётная запись для каждого сотрудника и подрядчика, с минимально необходимыми правами.
  • Удаление учётных записей людей, которые больше не работают с сайтом.
  • Смена паролей после завершения работы с внешним подрядчиком.
  • Нестандартный адрес входа в админку или ограничение доступа к ней по IP-адресам.

Отдельно о домене. Доступ к личному кабинету регистратора — самый ценный из всех. Тот, кто им владеет, может перенаправить ваш адрес на любой сервер. Домен должен быть оформлен на вашу компанию или на вас лично, а не на веб-студию или фрилансера, и доступ к нему должен быть у вас.

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

Обновления: скучно, но жизненно важно

Ядро CMS, тема оформления, плагины, версия PHP на сервере — всё это нужно обновлять. Чем дольше сайт не обновлялся, тем больше в нём известных уязвимостей и тем сложнее и опаснее становится само обновление.

При этом бездумно нажимать «Обновить всё» на рабочем сайте тоже не стоит. Новая версия плагина может конфликтовать с темой, а обновление PHP — сломать устаревший модуль. Правильный порядок выглядит так:

  1. Сделать резервную копию файлов и базы данных.
  2. Проверить обновления на тестовой копии сайта, если она есть.
  3. Обновить, начиная с ядра, затем плагины и тему.
  4. Проверить ключевые сценарии: открытие главной, отправку формы, оформление заказа.
  5. Если что-то сломалось — откатиться из копии и разбираться без спешки.

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

Резервные копии, которые действительно спасут

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

ПравилоПочему важно
Копировать и файлы, и базу данныхБез базы пропадут товары, заказы и тексты, без файлов — шаблоны и картинки
Хранить копии вне сервера сайтаПри взломе или сбое хостинга копии на том же сервере тоже могут пострадать
Держать несколько копий за разные датыЗаражение часто обнаруживают через недели, и последний бэкап уже содержит вредоносный код
Делать копии автоматическиРучные копии делают первые два месяца, потом забывают
Периодически проверять восстановлениеБэкап, из которого не получается развернуть сайт, бесполезен

Для интернет-магазина с ежедневными заказами копию базы данных стоит делать минимум раз в сутки. Для сайта-визитки, где контент меняется раз в месяц, достаточно еженедельной копии. Хранить разумно хотя бы последние 14–30 дней.

Защита форм и от спама

Формы на сайте — вход для данных извне, а значит, потенциальная точка атаки. Помимо технической проверки входных данных, которую должен сделать разработчик, нужна защита от автоматических отправок.

Самый заметный симптом проблемы — десятки бессмысленных заявок в день со ссылками на подозрительные сайты. Они не просто раздражают менеджеров, но и могут привести к тому, что почтовые сервисы начнут помечать письма с вашего сайта как спам. Тогда настоящие заявки тоже перестанут доходить.

Решения разной степени строгости:

  • скрытое поле-ловушка, которое заполняют только роботы;
  • проверка времени заполнения: человек не может отправить форму через полсекунды после загрузки;
  • невидимая капча, например SmartCaptcha от Яндекса, которая показывает задание только подозрительным посетителям;
  • ограничение количества отправок с одного адреса за период.

Обычно хватает сочетания двух первых способов с невидимой капчей. Классическую капчу с распознаванием искажённых букв лучше не использовать: она раздражает живых людей и снижает количество заявок.

Если сайт принимает файлы — резюме, чертежи, фотографии для расчёта, — сервер должен проверять их тип и размер и не позволять загрузить исполняемые скрипты. Это одна из классических уязвимостей самописных сайтов.

Хостинг и мониторинг

Значительная часть безопасности зависит от хостинга. Дешёвый виртуальный хостинг за 100 рублей в месяц, где на одном сервере размещены тысячи сайтов, может быть опасен соседством: заражённый сайт соседа иногда становится проблемой для всех. Хороший хостинг обновляет серверное программное обеспечение, изолирует аккаунты друг от друга, предоставляет автоматические резервные копии и базовую защиту от массовых атак.

Вторая важная вещь — мониторинг. Вы должны узнать о проблеме раньше клиентов. Минимальный набор:

  • сервис проверки доступности, который пришлёт уведомление, если сайт перестал открываться;
  • Яндекс Вебмастер и Google Search Console — они сообщают, если обнаружили на сайте вредоносный код или признаки взлома;
  • уведомления об истечении сертификата и оплаты домена;
  • периодическая проверка сайта антивирусным сканером на стороне хостинга.

Однажды к нам обратился владелец туристического сайта из области: посетители жаловались, что с телефонов сайт перекидывает на сомнительный ресурс, а сам он с компьютера ничего не замечал. Вредоносный код срабатывал только на мобильных и только при переходе из поиска. Заражение длилось около трёх недель, за это время сайт успел получить пометку в выдаче. Лечение и снятие пометки заняли ещё около недели. Мониторинг через Вебмастер позволил бы заметить проблему в первые дни.

Подключите сайт к Яндекс Вебмастеру и включите уведомления на почту, которую вы реально читаете. Это бесплатно, занимает 15 минут и часто становится первым сигналом о взломе.

Что делать, если сайт всё-таки взломали

Даже при хорошей защите полностью исключить риск нельзя. Главное в такой ситуации — действовать спокойно и по порядку.

  1. Не удаляйте файлы хаотично. Сначала сделайте копию текущего состояния — она понадобится для анализа.
  2. Смените все пароли: админки, хостинга, баз данных, FTP, почты.
  3. Свяжитесь с хостингом: у них часто есть журналы и инструменты для поиска заражения.
  4. Найдите и устраните причину — устаревший плагин, слабый пароль, уязвимую форму. Без этого сайт взломают повторно через несколько дней.
  5. Восстановите сайт из чистой резервной копии или вычистите вредоносный код.
  6. Обновите все компоненты до актуальных версий.
  7. Отправьте запрос на перепроверку в Яндекс Вебмастер и Google Search Console, если сайт был помечен как опасный.

Самая частая ошибка — восстановить сайт из бэкапа и на этом успокоиться. Если причина не устранена, повторное заражение почти гарантировано.

Выводы

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

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

Нужен сайт или доработка текущего? Расскажите о задаче — через 24 часа покажем эскизы решения, а к готовому сайту добавим месяц продвижения в подарок.

Обсудить проект

Читайте также

Адаптивная вёрстка: как сайт подстраивается под любой экран
Технологии и вёрстка

Адаптивная вёрстка: как сайт подстраивается под любой экран

Откройте свой сайт на телефоне, потом на планшете, потом на ноутбуке и на большом мониторе в офисе. Если везде текст читается без увеличения, кнопки нажимаются с первого раза, а меню не…

Читать статью →

← jQuery и AJAX: живые элементы без перезагрузки страницыТехническая поддержка сайта после запуска →

[email protected]Адрес: г. Калининград, ул. Генерала Соммера, д. 28, офис 304
Заказать звонок