Безопасность и работоспособность сайта

Пройдите по этому списку со своим системным администратором или разработчиком — словом, человеком, который отвечает за работоспособность сайта. Убедитесь, что он делает всё необходимое.

Резервные копии

«Бэкапы» (от англ. backups – «запас, резерв») — резервная копия данных. Есть шутка про админов, которые не делают бэкапы и тех, которые уже делают. Если вы хоть раз теряли данные, рабочие или личные, то уже ощутили значимость такой потери. И, надеемся, делаете резервные копии.

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

  • Делаем бэкапы
  • Бэкапы хранятся на отдельном сервере

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

  • Запланировали регулярность бэкапов, исходя из наших потребностей, и настроили время хранения

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

  • Мы резервируем всё, что нужно?

    План-минимум: все файлы, дамп базы данных. Рекомендуем также делать настройки в панели управления.

  • Делаем пробное восстановление?

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

Реплицирование базы данных

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

  • Базы данных нашего сайта, CRM и других важных сервисов реплицируются

    Суть репликации в том, что данные из вашей БД постоянно копируются на один или несколько других серверов (они называются репликами). В случае сбоя вы минимизируете потери данных и даже можете переключиться на реплику, пока с основной базой данных ведутся работы.

Мониторинг состояния сайта и сервера

Как быстро вы узнаете о проблеме, если что-то пошло не так? Как быстро сможете отреагировать?

  • Проверяем состояние сайта извне: на доступность и скорость

    Самый простой и быстрый способ — настроить мониторинг в Яндекс.Метрике. Если сайт упадёт — придёт sms. Но лучше, если мониторинг не только оповещает о недоступности сайта, но и помогает узнать о возможной проблеме заранее.

  • Настроен мониторинг важных параметров сервера

    Проверяйте нагрузку, свободное дисковое пространство, память, состояние процессов. Можно использовать Zabbix.

  • Есть уведомления о расходовании ресурсов — сигналят, когда лимит практически исчерпан

    Периодически нужно оценивать, хватает ли ресурсов сервера, и планировать увеличение ресурсов или «переезд». Мы рекомендуем делать это хотя бы 1 раз в 3 месяца. При необходимости оптимизируйте настройки сервера, иногда требуется оптимизировать код — для этого обратитесь к разработчику. Если проект растёт быстро, рекомендуем обратить внимание на тарифы, где можно выбрать свою конфигурацию сервера и масштабировать ресурсы «на лету».

  • Работают уведомления о критических ситуациях

    Чтобы убедиться в этом, проведите тестовые аварии: фиксирует ли их автоматика?

Подготовка к масштабным акциям и рекламным кампаниям

Во время акции нагрузка на сайт возрастает — может случиться что угодно: снизится скорость загрузки страниц, сломается форма отправки заказов, не хватит ресурсов сервера. Подключаете ли вы к подготовке акции технических специалистов? Или этим занимаются только маркетологи?

  • Проводим нагрузочное тестирование за несколько дней до мероприятия

    Например, с помощью, Яндекс.Танка.

  • Заручились поддержкой ключевых людей

    Все сотрудники, которых коснётся акция, должны знать про неё. Особенно те, кто будет устранять возможные неполадки на сайте.

  • Согласуем план действий. Решаем, кто за что отвечает

    Лучше всего подготовить инструкции на случай конкретных неполадок, например: сайт недоступен 5 минут — разбирается ответственный администратор, 15 минут — задействуем весь штат админов, не нашли проблему за 20 минут — звоним хостеру.

  • Готовы наращивать ресурсы сервера

    Если нет «запасных» ресурсов, нужно быть готовым «добавить» их. Если у вас виртуальный/облачный сервер, узнайте у хостера, можно ли быстро добавить ядер и памяти. Если у вас выделенный сервер — можно ли оперативно съехать на более мощную «железку».

  • Помним про мониторинг

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

Если сервер в офисе

Мы убеждены, что сервер в офисе — вчерашний день. Это капитальные вложения, и если оборудование сломается или морально устареет — все риски на вас. Накладные расходы по поддержанию инфраструктуры — тоже: надо выделить или арендовать отдельное помещение под серверную, закупить оборудование для охлаждения и осушения воздуха, оплачивать электроэнергию и обеспечить дополнительные источники питания, не забыть про резервные интернет-каналы. А если сервер украдут? Да и в возможностях масштабирования ресурсов вы ограничены.

Но если вы по каким-то причинам выбрали сервер в офисе, этот раздел специально для вас:

  • Доступ к серверной ограничен

    Кто имеет доступ к серверу? Доверяете ли вы этим людям свои данные? Имеют ли они достаточный уровень компетентности и аккуратности?

  • В серверной обеспечены охлаждение, нет избыточной влажности и пыли
  • У нас есть резервный интернет-канал на случай отключения основного?

    Достаточно ли ширины канала для поддержания работы сайта и других систем?

  • У нас есть резервный источник питания?

    На какой период? Достаточно ли его мощности и для работы сервера, и для обеспечивающих систем, например, системы охлаждения?

  • «Последняя миля» интернета будет работать

    Иногда при отключении электричества обесточивается и оборудование интернет-провайдера. Убедитесь, что с вами такого не случится.

  • Мы знаем, как действовать, если в офис пришли представители государственных органов>

    В каком случае они имеют право изъять сервер? Кто в компании должен общаться с этими людьми и что именно он должен делать? Аренда сервера у хостинг-провайдера избавляет от этих рисков, снижает финансовую нагрузку на покупку оборудования. Но выбор, конечно, за вами.

Группа быстрого реагирования

  • Администратор и разработчик готовы оперативно приступить к решению любой проблемы

    На случай болезни или отпуска этих сотрудников, нужен чёткий план по спасению ситуации.

  • У технических специалистов есть средство групповой коммуникации

    Ребята общаются в Телеграм/Битрикс/Slack. Писать на почту и даже созваниваться неудобно и долго. Групповой чат — быстро, а ещё сообщения видны всем и сразу.

Безопасность сайта

  • Регулярно обновляем готовую CMS, которую используем

    В 2019-ом специалисты по информационной безопасности находили прорехи в Drupal, WordPress и Joomla. Мошенники активно использовали уязвимости движка для доступа к серверу, например майнинга, спам-рассылки и кражи данных.

  • Используем рекомендации по безопасности для нашей CMS

    Для начала нужно закрыть доступ к системным папкам. И проверить плагины в трекерах публично известных уязвимостей:

  • Используем компоненты только с официальных сайтов/репозиториев

    Там их проверяет производитель или сообщество.

  • Регулярно проверяем сервер на вирусы и взлом

    Используйте специальные программы: Virusdie, Aibolit, Rescan.Pro и др.

  • Регулярно устанавливаем обновления операционной системы

    Это необходимо, если ваш проект живет на виртуальном или выделенном сервере.

  • Для защиты веб-приложений используем WAF — Web Application Firewall

    Это модуль или плагин на сайте, который фильтрует трафик веб-приложений и блокирует подозрительные запросы. Главное, чтобы он интегрировался с другими средствами безопасности.

  • Перевели сайт на протокол HTTPS

    Chrome сообщил, что с 26 октября начнет полностью блокировать контент с протоколом HTTP. Отсутствие SSL-сертификата, грозит тем, что в Chrome ваш сайт перестанет работать. 

    Лучше всего для коммерческих сайтов подходит SSL-сертификат с расширенной проверкой организации — EV типа. Он защищает данные и говорит пользователям, что ваша компания проверена: реально существует и легально работает.

  • Наш пароль не взломать

    Используйте спецсимволы, разные регистры и не менее 8 символов. Здесь можно проявить оригинальность по полной.

  • Ведём логи

    В них можно отследить подозрительные запросы — попытки несанкционированного доступа, брутфоса или сканирования на уязвимости.

  • Размещаем разные проекты под разными пользователями>

    Помогает избежать перекрёстного заражения.

  • Отключили потенциально опасные функции в PHP

    Основные из них: exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source. Но прежде чем отключить, убедитесь, что не используете эти функции!