Двухфакторная защита сайта: первые шаги без ловушек
За 30–60 минут можно закрыть админку сайта вторым фактором: приложением-аутентификатором, резервными кодами и корректным сценарием восстановления. Разбираем, что включить сначала и где чаще всего теряют доступ.

За 30–60 минут можно закрыть админ-панель сайта вторым фактором: пользователь введёт пароль, а затем одноразовый код из приложения-аутентификатора. Ниже — практический запуск для сайта с собственной авторизацией или CMS, без привязки к конкретной кнопке в интерфейсе: названия разделов зависят от платформы, но порядок действий остаётся тем же.
Что подготовить до включения 2FA
Этот материал посвящён защите административных и привилегированных аккаунтов. Для обычных пользователей включать второй фактор лучше после отдельного тестирования: ошибка в сценарии восстановления может заблокировать сразу весь личный кабинет.
- доступ администратора к панели сайта и серверу;
- HTTPS на странице входа и во всех разделах, где вводится код;
- приложение-аутентификатор на телефоне или отдельном защищённом устройстве;
- второй способ связи с сайтом: резервный администратор или проверенный канал восстановления;
- место для хранения одноразовых резервных кодов — не в открытом чате и не в файле на сервере;
- тестовая учётная запись с теми же правами, что и у будущих пользователей 2FA.
Если сайт работает на CMS, сначала проверьте документацию именно для установленной версии и убедитесь, что расширение для 2FA обновляется. Если это собственное приложение, не придумывайте криптографический протокол: используйте реализацию TOTP из библиотеки для вашего языка и сверяйте параметры с документацией.
Второй фактор защищает не только форму входа. Он защищает весь процесс вокруг неё: подключение устройства, восстановление доступа, смену номера телефона и завершение активных сессий.
Термин: TOTP — одноразовый пароль, который приложение рассчитывает из общего секрета и текущего времени. Код обычно меняется через короткий интервал, а сайт проверяет его с небольшим допустимым смещением часов.
Первые шаги: включаем защиту для администратора
1. Выберите второй фактор
Для первого запуска выберите приложение-аутентификатор с поддержкой TOTP. Не начинайте с SMS, если сайт позволяет использовать приложение: SMS зависит от мобильной сети и восстановления номера, а перехват или перевыпуск SIM-карты превращает телефонный номер в слабое место.
Аппаратные ключи безопасности надёжнее против фишинга, но требуют отдельной закупки, совместимости с формой входа и запасного ключа. Для небольшого сайта разумный старт — TOTP для администраторов плюс продуманный сценарий восстановления.
Проверка: в документации CMS или используемого модуля прямо указаны TOTP, приложение-аутентификатор и резервные коды. Если описан только код по SMS, это другой сценарий, не подменяйте его TOTP.
2. Проверьте HTTPS и время на сервере
Одноразовый код нельзя вводить на странице без HTTPS: секрет или данные сессии могут утечь вместе с паролем. Проверьте сертификат в браузере, редирект с HTTP на HTTPS и отсутствие смешанного контента на странице входа.
Сервер и устройство пользователя должны показывать близкое время. Сильный сдвиг часов часто выглядит как ошибка пароля, хотя проблема находится в синхронизации времени. Проверьте системную синхронизацию на сервере и не расширяйте окно допустимых кодов без необходимости.
Проверка: при открытии страницы входа браузер не показывает предупреждение о соединении, а код из приложения принимается без ручного изменения времени на телефоне.
3. Подключите приложение-аутентификатор
В профиле администратора найдите раздел безопасности и запустите подключение TOTP. Сайт покажет QR-код или строку настройки. Отсканируйте её только в официальном приложении-аутентификаторе. Не отправляйте QR-код коллеге и не сохраняйте его как обычную картинку в общей папке: это фактически секрет для выпуска будущих кодов.
После сканирования приложение покажет текущий код. Введите его на сайте и завершите подключение. Не закрывайте страницу до подтверждения: некоторые панели считают фактор активным только после успешной проверки первого кода.
Проверка: сайт сообщает, что фактор подключён, а после выхода из аккаунта запрашивает не только пароль, но и новый код.
4. Сохраните резервные коды
При включении 2FA сайт может создать набор одноразовых резервных кодов. Скачайте или перепишите их в менеджер паролей либо на другой защищённый носитель. Каждый код должен работать один раз. Не храните резервные коды рядом с паролем в незашифрованной заметке.
Если панель не предлагает резервные коды, не включайте защиту сразу для всех администраторов. Сначала выясните, как устроено восстановление: через второго администратора, заранее подтверждённый канал или ручную процедуру владельца сайта. Восстановление через «секретный вопрос» или отправку ссылки на случайный адрес может оказаться слабее обычного пароля.
Проверка: вы знаете, где лежит резервный код, кто имеет к нему доступ и как отозвать оставшиеся коды после использования одного из них.
5. Протестируйте отказоустойчивость
Проверяйте защиту в отдельном браузере или в приватном окне, не выходя из основной рабочей сессии. Это снижает риск потерять единственный доступ из-за ошибки в настройке.
- Войдите с правильным паролем и правильным кодом. Должна открыться админ-панель.
- Введите старый или случайный код. Сайт должен отказать во входе и не раскрыть, какая часть секрета неверна.
- Повторно используйте уже принятый код. Он не должен сработать второй раз.
- Войдите с резервным кодом. После успешного входа этот код должен стать недействительным.
- Откройте список активных сессий и завершите тестовую. В браузере должна появиться форма входа.
- Проверьте восстановление через второго администратора или утверждённый процесс. Он не должен отключать 2FA одной ссылкой без дополнительной проверки.
Если не получилось
«Неверный код», хотя вы вводите его сразу
Сначала проверьте время на сервере и телефоне. Затем убедитесь, что код взят из нужной записи приложения, а не из старой учётной записи. Не перебирайте коды десятками: система может включить временную блокировку.
QR-код уже недействителен
Секрет мог быть перевыпущен при повторном открытии страницы настройки. Остановите старую запись в приложении, сгенерируйте новый QR-код и завершите подключение одним непрерывным сеансом. Если вы не уверены, кто видел старый QR-код, считайте его скомпрометированным и создайте новый.
После включения никто не может войти
Не удаляйте базу пользователей и не меняйте настройки наугад. Используйте заранее проверенный резервный аккаунт или официальную процедуру восстановления CMS. Если доступ есть только к серверу, сначала сделайте резервную копию конфигурации и базы, а затем действуйте по документации конкретной версии приложения.
Сайт принимает старый код повторно
Проверьте реализацию или модуль: одноразовый код не должен приниматься повторно в рамках одного временного интервала. Для собственного приложения это нужно подтвердить тестом на параллельные запросы. Один и тот же код, отправленный одновременно дважды, должен дать только один успешный результат.
Где этот подход ломается
TOTP не спасает, если пользователь вводит код на фишинговой странице, а злоумышленник мгновенно использует его на настоящем сайте. Для админов с высоким уровнем риска стоит рассмотреть аппаратные ключи, которые проверяют адрес сайта и лучше противостоят фишингу.
Не включайте 2FA только на странице входа, если отдельные административные действия обходят её через API, старую форму, мобильное приложение или служебный URL. Проверьте все точки доступа с правами администратора. Сброс пароля, смена почты, отключение 2FA и создание нового администратора должны требовать повторной проверки личности.
Не ставьте слишком широкое окно допуска по времени ради одного неисправного телефона. Это повышает вероятность принять код, который уже сменился. Сначала исправьте синхронизацию времени и проверьте, нет ли задержки между прокси, приложением и сервером.
Что настроить дальше
После пилота подключите 2FA ещё для одного администратора и сравните результат: вход с правильным кодом, отказ по старому коду, работа резервного кода и восстановление. Только затем переносите настройку на остальных пользователей.
В продакшене следите за журналами неудачных входов, запросами на сброс 2FA, выпуском новых резервных кодов и входами с непривычных адресов. Отдельно ограничьте число попыток, добавьте уведомления о смене факторов и храните резервную копию конфигурации до массового включения. Следующий практический шаг — составить таблицу всех способов входа в админку и отметить, где второй фактор уже проверяется, а где его ещё можно обойти.
Сценарист праздников: Тосты, квесты, сценарии корпоративов и дней рождения.
Спросить за 8 ₽Источники: RFC 6238: TOTP — Time-Based One-Time Password Algorithm, OWASP Authentication Cheat Sheet
Частые вопросы
Достаточно ли включить двухфакторную защиту только для главного администратора?
Что делать, если я потерял телефон с приложением-аутентификатором?
Можно ли использовать SMS вместо приложения?
Почему правильный код не принимается?
Что делать, если на сайте другая CMS или другая версия?
Нужно ли просить код при каждом действии в админке?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.