tuqo

Как закрыть сайт паролем без сервера и .htaccess

Классический способ закрыть сайт паролем — файлы .htaccess и .htpasswd на сервере с Apache. Он работает, но требует ровно того, чего у статического сайта нет: своего сервера, доступа к его конфигурации и умения его настраивать.

Если сайт лежит на статическом хостинге, замок даёт сама платформа.

Что не так с .htaccess на статике

.htaccess — это файл конфигурации Apache. На статическом хостинге вашего Apache нет: файлы раздаёт общая инфраструктура платформы, и класть в неё чужие конфиги никто не даст. Загруженный в корень сайта .htaccess там просто лежит мёртвым грузом — иногда его даже отдают посетителю как обычный файл.

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

Как это работает в Tuqo

Замок включается на вкладке «Видимость» на странице сайта и накрывает все файлы, а не только HTML. Это принципиально: если защищены страницы, но не картинки, прямая ссылка на фотографию открывается у кого угодно — а ради таких файлов замок обычно и вешают.

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

Ещё три вещи, которых у .htaccess нет из коробки:

  • Срок доступа. Доступ до даты или на 1, 3, 7, 30 дней, с обратным отсчётом на экране входа. Если доступ выдан больше чем на двое суток, за сутки до конца придёт напоминание — короткому доступу «на вечер» оно не нужно.
  • Число открытий. После N устройств ссылка перестаёт пускать новых — удобно, когда доступ уходит одному человеку, а не в общий чат.
  • Статистика. Входы, показы экрана, неверные попытки, последний вход.

Что с поиском

Закрытый сайт в выдачу не попадает: он отдаёт поисковым роботам собственный robots.txt с запретом обхода, а сама страница входа помечена noindex и отвечает кодом 401. То есть не индексируется ни содержимое, ни окно ввода пароля.

Насколько это надёжно

Вход проверяется argon2-хешем: подобрать по нему пароль нельзя. Проверка идёт один раз, дальше подписанная cookie строго на ваш хост. Перебор упирается в лимит: пять неверных попыток с одного IP-адреса по одному сайту за 15 минут — и форма выключается.

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

Когда пароля мало

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

Пароль доступен с тарифа «Старт», код на почту — с «Профи». Подробнее: закрытый доступ к сайту и доступ по списку email.