Защита паролем

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

Включается она в настройках сайта, на вкладке Дополнительно в разделе Защита паролем. Поля такие:

Поле Примечания
Логин До 64 символов, без пробелов и без :.
Пароль До 128 символов. Оставьте поле пустым, чтобы сохранить текущий пароль.
Заголовок окна Текст, который некоторые браузеры показывают в окне входа. По умолчанию: «Restricted area».

Под защиту попадают все страницы и файлы сайта. Для одной папки используйте .htaccess (см. ниже).

Как хранится пароль

Панель хранит только хеш пароля scrypt, поэтому показать пароль ещё раз она не может. Чтобы сменить пароль, введите новый; чтобы оставить прежний, не заполняйте поле. В экспорт настроек попадает хеш, так что на другом сервере у сайта будет тот же пароль.

Если старая версия хранила пароль открытым текстом, при запуске панели он заменяется хешем.

Проверки, которые не замедляют сервер

scrypt медленный намеренно, а браузер отправляет пароль с каждым запросом. Чтобы это не нагружало сервер, WardPane ограничивает работу так:

  • Новую пару имени и пароля панель проверяет вне основного потока, и другим сайтам ждать не приходится.
  • Одновременно выполняется не больше 2 проверок для всех паролей сайтов вместе, и не больше 2 могут ждать в очереди от одного посетителя (адреса, а для IPv6 его /64). У собственного входа в панель отдельная очередь, поэтому поток попыток подбора на сайте никогда не закроет вам доступ к панели.
  • Если проверка не может начаться в течение 5 секунд, посетитель получает 503 с Retry-After: 5 вместо нового запроса пароля, чтобы браузер не забыл пароль, который ввёл пользователь.
  • Результаты кешируются: после первой проверки на те же правильные (или неправильные) данные ответ приходит сразу.

После всех остальных фильтров

Пароль проверяется после всех остальных фильтров: чёрного списка, лимита запросов, Bot Fight Mode, гео-блокировки, устройств, защиты от хотлинка и обязательных параметров ссылки. Боты и заблокированные посетители окна входа даже не видят, и заставить сервер тратить время на проверку паролей не могут. Вместе с защитой от DDoS это ещё и ограничивает скорость подбора.

Используйте HTTPS

HTTP Basic отправляет имя пользователя и пароль с каждым запросом в Base64, и любой, кто видит трафик, их раскодирует. Поэтому работайте только по HTTPS (включите для сайта перенаправление HTTP на HTTPS) и не ставьте сюда пароль, который используете где-то ещё.

Пароль не передаётся PHP-скриптам.

Защита одной папки через .htaccess

Чтобы защитить только часть сайта, например /admin/, или завести нескольких пользователей, включите .htaccess для сайта и используйте привычные директивы Apache AuthType Basic, AuthName, AuthUserFile и Require valid-user с файлом .htpasswd. WardPane обрабатывает их сам и применяет свои ограничения против подбора. См. .htaccess.